Пишем код быстро. Борьба с парадоксом приоритетов.
Моя работа состоит в том, чтобы создавать потрясающее, простое в сопровождении программное обеспечение быстрее, чем это возможно. Чтобы позволить моему бизнесу доминировать на своем основном рынке, а также адаптировать и расширять этот основной рынок, в конечном итоге предоставляя услуги, которые продавцы любят продавать, компании любят покупать, а все любят пользоваться. Это еще не все, но пока остановимся на этом.
Если вы пишете программное обеспечение, это тоже ваша работа.
К сожалению, нам всем предстоит пройти долгий путь, прежде чем мы сможем писать идеальное программное обеспечение каждый день от солнца до заката. Итак, учитывая, что в программном обеспечении есть миллион способов сделать что угодно (и тем более в javascript), мы должны расставить приоритеты. Хотя никогда в абсолютном масштабе. В нашем коде должно быть разное количество всего. Хитрость, кажется, выяснить, сколько?
Когда мы пишем код без каких-либо ожиданий, скажем, дома для развлечения, мы все по умолчанию используем определенный набор характерных кодов. Возможно, вы пишете модульные тесты для развлечения? Может быть, вы создаете высокопроизводительный код только для того, чтобы доказать, что вы на это способны? Или вы создаете код, который масштабируется на тысячу машин, просто чтобы посмотреть, что получится? Некоторые люди действительно блестяще склеивают весь код воедино. А другие меняются от месяца к месяцу. Прежде чем вы сможете расставлять приоритеты, вы должны знать, что вы строите естественным образом. Скорее всего, это то, что вам сейчас больше всего нравится строить. Мы можем распределять наши личные ресурсы только в том случае, если понимаем, что они из себя представляют.
Мы должны понимать, что нужно нашим клиентам. Наши клиенты в области программного обеспечения — это все люди, которые касаются системы на протяжении всего ее существования — даже во время строительства. Если вы работаете в команде, использующей непрерывную интеграцию, может быть целесообразно итерировать функции по мере перехода из рук в руки в вашей организации перед выпуском. Спросите у своего менеджера, он вам скажет масштаб, качество, скорость доставки — все это важно. Читайте между строк и понимайте, что нужно вашему бизнесу. Адаптируйтесь к обратной связи.
Пересечение.
Работа усерднее и дольше может быть тем, что нужно бизнесу. Просто заметьте, что люди на самом деле не сильно различаются в том, насколько больше они могут производить интеллектуального продукта. Даже если вы производите в 2 раза больше работы, работая сверхурочно, это менее оптимально, чем адаптировать работу, которую вы можете выполнять обычно, чтобы все остались довольны. Или делать и то, и другое.
Как мы адаптируем наш код? Ну, если для вас действительно важна возможность быстрой поставки и итерации, и вы не гений TDD, тогда модульные тесты должны быть значительно сокращены. Покрытие критических частей кода разумно, и функциональные тесты, которые доказывают, что система работает и в основном действует правильно, имеют большое значение. В зависимости от того, насколько вам удобно не запускать свой код для тестирования каждой функции, другим способом ускорения доставки может быть написание больших блоков кода, а затем их отладка, чтобы убедиться, что они работают правильно время от времени. Также будьте готовы использовать бесплатно лицензированный код, чтобы помочь.
К сожалению, улучшить качество кода не так просто, как увеличить количество тестов, хотя это, вероятно, является его частью. Существует бесчисленное множество мнений о том, как достичь совершенства, да и вообще, что это такое? Но, вообще говоря, требуется либо команда экспертов с большой дисциплиной, либо больше времени и энергии для проверки и подтверждения правильности кода. Экспертные отзывы имеют большое значение. Особенно если вторая пара рук загрузит и запустит ваш код.
Масштаб очень похож на качество кода, но больше ориентирован на архитектуру. Думая заранее, можно избежать условий гонки и других пугающих особенностей распространения.
Мне тоже интересно, что думают все остальные. Мы все тратим довольно много времени каждую неделю, пытаясь все-таки что-то сделать!