Jako hipotetyczne, gdybym miał przeprowadzić wywiad z kimś na nowym stanowisku programisty PHP, kiedy mam doświadczenie w .NET, w jaki sposób mogę ustalić, czy dostarczony mi kod próbki jest wydajny i dobrej jakości?
Innymi słowy, jaki jest najlepszy sposób oceny kodu programisty, jeśli nie znasz języka?
code-quality
interview
code-reviews
Jason Towne
źródło
źródło
Odpowiedzi:
Rzeczy, których nie będziesz w stanie ocenić, to poprawne użycie idiomów języka i użycie biblioteki. To nie są rzeczy, na które powinieneś spojrzeć.
Co możesz ocenić to:
Powyższe punkty (choć nie wyczerpujące) wskazują, czy kod pachnie czy nie i powinien być czymś, co doświadczony programista może zidentyfikować jako dobry lub zły.
W skrócie - szukaj rzeczy, które powinny wskazywać dobry kod niezależnie od języka.
źródło
Poproś, aby schemat blokowy lub przeprowadził cię przez niego w ramach wywiadu. Masz idealną wymówkę, by o to zapytać, a ona mówi sporo o tym, jak myślą, aby zobaczyć, jak wyjaśniają.
Jeśli zamierzają przejść do preferowanego języka, wiesz, że masz dużo mentoringu, więc powinieneś przede wszystkim szukać dobrych umiejętności logiki / rozumowania.
Jeśli będą nadal pracować w preferowanym przez ciebie języku, musisz zaakceptować fakt, że w pewnym stopniu sam się zarządzę szczegółowymi szczegółami dotyczącymi konkretnego języka, dopóki ktoś inny nie podejmie tempa, więc wszystko, co musisz zrobić z jest tam również strona projektowa.
źródło
Pomijając kość z głową / oczywiście niewłaściwy kod, sprawność będzie w dużej mierze zależeć od kompilatora / interpretera danego języka, a tak naprawdę nie będziesz w stanie spojrzeć na to z próbki kodu. Próbka kodu może być pięknie napisana i elegancka jak porcelana na serwetkach, ale działa wolno, jeśli źle skompilowana / zinterpretowana.
Bez pewnej znajomości nie będziesz w stanie ocenić idiomatycznego wykorzystania funkcji językowych / cukru syntaktycznego / konwencji.
Powinieneś być w stanie stwierdzić, czy ogólnie jest dobrze napisany w oparciu o uniwersalne względy, takie jak porządek, przepływ kontroli, nazewnictwo zmiennych, kolejność operacji i tak dalej.
Jednak, bardziej praktycznie, jeśli wiesz, jaki język będzie wprowadzany w ten proces, możesz spróbować znaleźć jeden lub więcej przewodników po stylu dla tego języka, przejść do księgarni i przejrzeć kilka książek dla tego języka i przejrzyj przykłady kodu szukając analogów do czegoś, co znasz w / w wybranym języku (językach), sprawdź jeden lub więcej projektów open source, które używają tego języka i tak dalej.
Jeśli masz czas i nie ma bariery kosztowej, możesz nawet posunąć się do skonfigurowania środowiska programistycznego dla tego języka i wypróbować aplikację Hello World, zrobić kata kodu lub w inny sposób napisać prostą małą aplikację w tym. Dość szybko opracujesz podstawowe ramy odniesienia, które nie tylko pozwolą ci przejrzeć konkretny cel przeglądu danego kodu, ale możesz być zmuszony przez język i nieco się rozgałęzić.
źródło
Niezależnie od języka:
Nie twierdząc, że kod, który nie zawiera wszystkich tych elementów, jest automatycznie słaby, ale uważam, że są to wskaźniki kogoś, kto zastanowił się nad swoją praktyką i zastanowił się nad nią.
Jednak w przypadku wszystkich tych wskaźników należy zapytać, jakie jest uzasadnienie takiego kodu. Może istnieć dobry, specyficzny dla danego języka powód ich wyboru ... a potem google jest twoim przyjacielem, kiedy oni i inni kandydaci odchodzą, ponieważ możesz sprawdzić, czy to, co powiedzieli, brzmi prawdopodobne ...!
Powodzenia, ponieważ zatrudnianie dobrych ludzi jest jedną z najważniejszych ról w Twojej organizacji;)
źródło
Powinieneś poprosić kogoś, kto zna dany język, aby przyszedł na rozmowę lub rzucił okiem na próbkę. Taka osoba znacznie bardziej prawdopodobne będzie znalezienie złych miejsc, jeśli takie wystąpią.
Czy kandydat będzie pracował w zespole? Niech członkowie zespołu go spotkają i zadadzą pytania o jego umiejętności.
źródło
Zapytaj ich o ograniczenia, na które natrafili podczas korzystania z języka. Poproś, aby pokazali ci proste zapytanie SQL. Każdy deweloper php warty przeszukania powinien być w stanie wykonać podstawowe zapytanie wyboru / aktualizacji / usuwania bez zbytniego wysiłku.
doug
źródło