Почему программисты пишут плохой код, и как научить их писать хороший.
1 of 33
More Related Content
Как воспитать программиста
1. Как воспитать программистаНесколько теоретических и трипрактических совета по воспитанию эффективного программистаМихаил Пайсонmikhail@payson.ru
2. ПланОсновной капитал Software компанииОткуда берутся программисты?Как найти готового специалиста?Как найти студента?Как сделать что-то с уже существующими людьми?Уровни мастерстваИсточники плохого кодаТри шага становления программистаПрактические советыЧему учить?Основные ценностиИнспекция кода
10. Откуда берутся программисты?Как найти готового специалиста?Переманить деньгамиПереманить интересной работойПереманить карьерным ростомПереманить условиями трудаПолучить готового специалиста в связи с его переездом
12. Откуда берутся программисты?Как найти студента?Создать высокий имидж компанииДоговориться с кафедрамиПрочитать курс лекцийОрганизовать СКБ или НИРС
14. Откуда берутся программисты? Как сделать что-то с уже существующими людьми?УчитьНаправлятьВоодушевлятьКонтролировать!
15. Откуда берутся программисты?КейсВы приходите в новую группуЕсть разработчик:Большой опыт и знанияНе удовлетворяет начальство, т.к. не может в срок выполнить задачу«Слил» важный проектРешение начальства: «надо увольнять»Ваши действия?
17. Источники плохого кодаНикто и никогда сознательно не пишет плохоОсновной источник – отсутствие «воспитания»Второй источник – отсутствие контроляТретий источник – отсутствие времени
18. Три шага становления программистаКачествоЭффективное развитиеВысокоеИсправление ситуацииНе бывает!УмничаемПрограммируемПроизводительность упала!Бесконтрольное развитиеНизкоеНадо что-то делать!ТупимКолбасимПроизводительностьНизкаяВысокая
19. Шаг 1. НенавистьНаучите программиста ненавидеть:Некачественный код«Сделать как побыстрее»Костыли и заплатки«Сейчас начнём, а потом увидим – что получится»
20. Шаг 2. СтрастьПрограммист начинает:Любить «умничать»Писать «красивые решения»Наворачивать паттерны и методологииОтшлифовывать код до блескаГордиться своей профессиональной компетентностью
21. Шаг 3. ЗдравомыслиеПрограммист осознаёт:Думаем прежде, чем пишемНет универсальных решенийЧем проще, тем легче работатьЭффективность прежде всего
22. Кривая обученияПервое время любой программист тратит время командыС определённого момента он начинает работать сам, но работает неэффективноДля того, чтобы программист вышел на свою полную мощность требуется много времениОпять инвестиции!ПроизводительностьНеэффективная работаЗатраты на обучениеНеделиУбытки
24. Чему учить?Подумай каждый раз перед тем, как писатьКод вероятно придётся модифицировать: чем «грязнее» код, тем больше проблем у тебя будет потомАккуратное приложение без ошибок выглядит круто. И все любят его автора.Трус не играет в хоккей, а профессионал не «колбасит»
25. Чему учить?Общие соглашения написания кода (унификация)Низкоуровневая архитектура (паттерны)Использование сторонних компонентов и готовых решений
26. Основные ценностиКод должен бытьПродуманАккуратенЭффективенБыстро, просто и аккуратно решать поставленную задачу
27. Инспекция кодаПроводится еженедельно для кода, написанного за неделюПроводится опытными программистами по очередиВремя на подготовку – 4 часаВремя на проведение – 1 час
28. Инспекция кода. ПроведениеПроводится в виде обсужденияВедущий готовит список недочётов (по его мнению)Имена авторов «плохого кода» не указываютсяКоманда обсуждает каждый из недочётовОбязательно подводятся итоги Принимается решение о исправлении либо рефакторинге части недочётов
29. Инспекция кода. JuniorДля juniorНахождение «плохого кода», пока он не врос в системуконтроль профессионального развития программистаОбучение: обсуждение и применение подходящей архитектуры
30. Инспекция кода. SeniorДля senior«Свежий взгляд» на кодОбдумывание более быстрых и эффективных решенийИногда и профессионалы «колбасят»
31. Инспекция кода.КомандаДля команды в целомВозможность обсудить качество кода и архитектурных решенийСтимул писать аккуратно, чтобы потом не краснеть на reviewПостоянное поддержание необходимости «писать хорошо»