Страницы

Поиск по вопросам

среда, 18 декабря 2019 г.

Как перестать писать говнокод?

#работа


        
             
                
                        
                            
                        
                    
                        
                            Заблокировано. This question and its answers are locked
because the question is off-topic but has historical significance. It is not currently
accepting new answers or interactions.
                            
                        
                    
                
                            
                    
        
             
                
                        
                            
                        
                    
                        
                            This question was migrated from Stack Overflow на русском
Meta because it can be answered on Stack Overflow на русском.
                            Migrated 2 года назад.
                        
                    
                
                            
                    
Здравствуйте!
Три месяца назад меня взяли работать в небольшую организацию, для нужд которой необходимо
написать приложени (под Android, пишу на Java).
На собеседовании особых вопросов не задавали. Сказали, мол, приложение будет простенькое
, учиться вместе будем и тд. Руководитель мой, программист C#, он мне задания и даёт. 
Т.к. база программирования у меня крайне слабая уповаю я, лишь на гугл. Со временем,
понимание начинает приходить, мозги работать. Т.е. постоянно идет работа с поиском
кода, его чтением, анализом, что непонятно сразу в доки, книжки, статьи. Как то раз
даже нашел в городе программиста, и напросился на встречу, где он мне написал кусок
кода, который меня спас от увольнения. Даже зарегистрировался тут и на стэковерфлоу...
Но я пишу откровенный говнокод. Руководитель ругает меня за низкую скорость. И может
иногда карательные меры предпринять, хоть и не смертельные. Я действительно неэффективно
работаю. 
Напрашивается вывод, нужно увеличивать знания java core. И писать, писать, писать...
Но после рабочего дня, если я его честно отрабатываю, откровенно не халтуря, то мои
мозги не могут воспринят информацию, в нужном объёме. Мне код снится ночью уже. Чаще
мой рабочий день это 12 часов, за которые я успеваю выжать себя как лимон, потратить
время на отвлекающие факторы и что то написать, вернее "наговнокодить". Проект двигается,
разрастается и с каждым днем я понимаю, что это вавилонская башня.
Мне нужен Ваш совет, умеющие программисты. Какой то жизненный опыт, ваш. Как перестать
говнокодить??
Спасибо!    


Ответы

Ответ 1



Да в общем-то никак. Умение писать грамотный код придет со временем, если, конечно же, регулярно практиковаться. Для новичка (особенно если речь идет всего о трех месяцах опыта) говнокод и медленная скорость работы - это вполне нормальная картина. Ему просто неоткуда знать, как писать код грамотно и быстро (к сожалению этому не учат даже в институтах ). Со временем, если у новичка есть голова на плечах и желание развиваться, он будет накапливать положительный и отрицательный опыт, научится грамотно распределять свое время и усилия, и мало-помалу этот процесс сдвинется с мертвой точки. Главные условия - это регулярная практика и самообучение. Описанная вами картина очень хорошо знакома многим (читая ваши строки, вспоминал, что почти то же самое происходило и со мной) - срывы сроков работы, регулярные баги, любовь к костылям, повсеместный говнокод, нагоняи от начальства. Серебряной пули здесь нет, это болезнь роста. Она излечивается со временем при соблюдении вышеуказанных условий. В любом случае хорошим подспорьем будет ковыряние в чужих исходниках (Гитхаб к вашим услугшам), чтение подходящей литературы ("Совершенный код" Макконелла или "Рефакторинг и улучшение существующего кода" Фаулера). Поинтересуйтесь также такой вещью, как рефактринг - изучение его принципов способно помочь в понимании того, как следует писать код. Если вы пишете на C# в Visual Studio, то великолепнейшим помощником для вас может стать Resharper. Он способен разглядеть тысячу потенциальных проблем в вашем коде и просто облегчить работу. Также очень благотворно может повлиять наличие наставника, который мог бы что-то показать и объяснить. Хотя с этим обычно сложнее.

Ответ 2



Разберитесь как правильно писать на Java: Thinking in Java, Effective Java. Пишите код. Читайте про хороший код: Clean Code, Beautiful Code, Code Complete, Implementation Patterns. Пишите код. Читайте чужой хороший код. Изучайте исходники популярных open-source продуктов. Разумеется, вы не сможете сразу отличить хорошие примеры кода от плохих. Но это даст вам пищу для размышлений и образцы для подражания (пусть даже и не лучшие). Получится своего рода бесплатный опыт: вам не пришлось тратить время на разработку и написание, вы смотрите уже на готовый код. Продолжайте писать код. Перечитывайте материал из пунктов 1-3. Выкидывайте плохой код. Пишите еще. Не бойтесь рефакторить. Будет отлично, если вы сможете учиться у других программистов и кто-то будет адекватно критиковать ваш код, например в рамках open-source проекта. Читайте про проектирование, принципы SOLID, паттерны, тестирование. Постепенно вы научитесь отличать хороший класс от плохого. Возвращайтесь к своему старому коду (даже полугодовалой давности). Обдумывайте, что в нем не так, что вы бы улучшили. Опирайтесь в дальнейшем на этот опыт. Я это все к чему: умение писать хороший код не приходит спонтанно. Необходимо накопить некоторую критическую массу опыта только для того, чтобы начать понимать что лучше, а что хуже. Намного быстрее этот опыт набирается в среде опытных разработчиков, где вам есть с чем сравнить свой код, чем в изоляции. Чаще мой рабочий день это 12 часов, за которые я успеваю выжать себя как лимон Не думаю, что оно того стоит. Такая работа - путь к стагнации и разочарованию в профессии. Три месяца назад меня взяли работать А это вообще не срок. Все впереди. Главное не позволяйте работе довести себя до "творческого выгорания".

Ответ 3



1) читать книги, если с первого раза не доходит - читать еще и еще, чтобы хорошо знать основные техники программирования и сам язык, чтобы не писать велосипеды 2) как можно больше стараться изучать чужой код (не говнокод) 3) практиковаться

Комментариев нет:

Отправить комментарий