Один раз я написал статью о том, как увлечение новым языком программирования спасло меня от выгорания. Её прочитало много людей, и меня позвали работать в стартап. Предложение было заманчивым, ребята звали меня делать реальные вещи, а не абстрактное дерьмо. Я согласился.
Не нанимайте крутых программистовНачнем с того, что Фил не имеет отношения к крутым программистам. Ну может он конечно общался с ними, жал им руки. Но сам - нет.
Крутость программиста - это не написать идеальную архитектуру по книжкам теоретиков, не покрыть 100% кода тестам, не придумать идеальные названия и понятные комментария функциям и переменным. То что я сейчас перечислил - это долбоебизм.
Крутость - это сделать качественный продукт соответствующий требованиям, за адекеватное время, с приемлимым уровнем говна и костылей.
Не надо противопоставлять говно на коленке и вылизанный идеальный проект. Это две стороны задней части медали. Опытный разраб пишет быстро и на коленке нормально, не вылизано, но и не говно.
Крутая архитектура это не когда как в книжках, от профессоров, которые ничего кроме текста лаб не писали. А когда 95% фич влезает в нее без коренных переделок проекта. Это когда там где с высокой долей вероятностью будут изменения, оставлен задел. А где их скорее всего не будет - нет никаких личшний слоев или абстракций.
Хорошие тесты - это не 100% покрытие, а тесты в местах где ошибки реально критичны, и где ошибок и времени на их фикс больше чем на написание тестов. И уж тем более ни тогда, когда код или архитектура проекта специально приспосабливается под тесты - это конечная остановочка.
Качественно писать код - это не 0 костылей, это костыль вместо переписывания половины проекта, это знать где костыль лучше вместо рефакторинга.
Рефакторинг - это не переименование методов или чистка кода от легаси. Рефакторинг, это перестрока здания на живую, это знать где лучше оставить как есть, а где цена недель отлова новых багов дешевле, чем оставить как есть.
А вообще начинать технический стартап не имея скилла в этой области или доверенного человека с такими скиллами - это лотерея.
Ох, не хотел я снова спорить с разработчиками, но от вас никуда не деться.
По пунктам. Не имею отношения к крутым программистам? Что бы говорить такое, нужно самому иметь отношение, а судя по херне про неважность архитектуры и тех же наименований ты гораздо дальше от них, чем я.
Сделать качественный продукт - это крутость команды, из разработчиков, тестеров, дизов, манагеров и т.д. - разрабы тут винтики в механизме, и от нас зависит даже не большая часть хорошести продукта.
Твои опытные разрабы, которые пишут быстро и с приемлемым качеством хороши во всем, но у них одна проблема - они вымышленные.
Классная архитектура, это как в книжке той же "Банды Четырех", каждый из которых писал приложения, размеры и важность которых недостижимы ни для тебя ни для меня.
Не знать, что тесты нужны не для проверки на ошибки, а для фиксации рабочего функционала - это визитная карточка для некомпетентных болванов, которые не читают книжки, а "пишут код который решает проблемы"
Качественно писать код - это качественно писать код. А городить костыли ради экономии бюджета - это качественно вести бизнес.
Рефакторинг, блядь, по определению - это улучшение качества кода без изменения его функциональности. А то о чем ты говоришь - это переработка.
Любой костыль - это сохранение текущего времени в ущерб будущему. При чем затраченное время нарастает по экспоненте в зависимости от наложенности костылей. Вы никогда заранее не узнаете какая часть проекта будет меняться, а какая нет.
Костыль - это затрата и времени, и ресурсов. Проект, разработанный по общепринятым правилам, может поддерживаться меньшим числом разработчиков, а вовлечение нового разработчика требует минимальных ресурсов. Названный вами «долбоебизм» сохраняет огромную кучу ресурсов при масштабировании проекта при чем в любом направлении.
По теме поста: соглашусь, что качество кода уходит на второй план у стартапов, в угоду бизнес задачам. Качество кода дает плоды в долгосрочной перспективе, а у стартапов есть необходимость получить инвестиции и охватывать рынок прямо сейчас. Но если стартап выходит на «плато», то продолжать существование на костылях все равно, что ехать на машине на ручнике - и медленно, и ресурсов уйдет в разы больше.
Я согласен с Илитным по всем пунктам.
Автор статьи написатель кода по книжкам, но не разработчик.
Печально, что он сейчас ввел в заблуждение много людей, тем самым, вероятно, загубив еще несколько проектов.
... Когда коммент лучше статьи
Не надо путать опытных программистов и крутых программистов. Это совершенно разные люди.
Комментарий недоступен
Полностью поддерживаю! Автору рано ещё называть себя крутым разработчиком. Без обид.
"Крутая архитектура это не когда как в книжках, от профессоров, которые ничего кроме текста лаб не писали. " wtf am I reading.
Добрый день.
Прочитал массивный кусок этого треда и ваших комментариев в частности.
В целом по большей части я согласен с вами, но хотелось бы узнать ваше мнение по поводу нескольких вещей. Собственно, я хотел бы лично вам написать, но не нашел возможности это сделать на сайте, поэтому и зарегистрировался и не нашел ничего лучше, кроме как написать вопросы прямо сюда :)
Каким образом вы видите развитие навыков проектирования у бывших студентов, которые становятся программистами (и нужно ли им это вообще)? Ну и как собственно развивать эти навыки у себя? Существует ли какой-то системный подход для этого?
Было бы круто, если бы вы написали статью на эту тему, потому что видно по крайней мере по тому, что вы пишите, что у вас довольно большой опыт.
Хотел написать похожий комментарий, но даже добавить нечего. Архитектурные астронавты такие астронавты... https://www.joelonsoftware.com/2001/04/21/dont-let-architecture-astronauts-scare-you/
шакал заткнись
а ты хорош
Комментарий недоступен
Вот тебя я бы нанял.
Просто там нужен хороший CTO или ТимЛид, который понимал, что реально нужно бизнесу и пинал программиста в нужном направлении.
А если такого программиста пустить именно на роль того, кто рулит проектом - этот проект или не будет выпущен никогда или к моменту выпуска будет неактуален)
Тот самый случай, когда комментарий - лучше самой статьи.
очень хороший ответ на статью
Я думаю идеального кода не бывает.
Писать тесты под все это не правильно. В целом согласен по большей части с вами