BonBonSlick
@BonBonSlick
Vanilla Full Stack Web Architector

Как избежать или контролировать постоянного переписывания и улучшения своего кода?

Так уж сложилось, что каждую неделю узнаю что-то что можно внедрить в свой личный проект. Вот что-то что маст хев, в результате вынужден переробатывать, править, или улучшать все.

Пример, узнал про то что надо избавиться от геттеров и сеттеров, особенно в DDD. Потому что они нарушают основные принципы. Пришлось переписать ядро, все методы были преименованы, да, стало читабельнее, да, логика улучшилась.

Теперь на много более понятно че происходит, хотя коду стало больше, так как вместо 2-х методов, гет и сет, теперь 2-7+ штук методов которые проводят логические операции.
class User{
...
public function getRating(){...}
public function setRating($rating){...}
//стало
public function showRating(){...}
public function addRating($rating){...}
public function substructRating($rating){...}
public function hasEnoughRating($rating){...}
public function compareRatings($rating){...}
...
}

Читабельнее да? Теперь понятно что где, зачем и как работает, вся логика в единой точке, а не раскидана по всему приложению.

Так вот, можно ли как то избежать подобного или хотя бы контролировать?
  • Вопрос задан
  • 308 просмотров
Решения вопроса 2
@Stqs
senior software developer
Andrew Stark,

1) вместо переписывания всего каждую неделю нужно один раз взять и потратить эту же неделю на прочтение 1-2 книг типа "Code Complete" или "The Pragmatic Programmer: From Journeyman to Master". Это позволит вам немного расширить кругозор и даст какие-то базовые принципы "хорошего код". Это в свою очередь приведет к тому что вы изначально будете писать более хороший код и переписывать все придется реже.
Далее с опытом придет понимание что не каждая статья на хабре является истиной в последней инстанции и не стоит сломя голову бежать и чото внедрять. Придет понимание зачем именно вам нужно это изменение. ВЫработается своя точка зрения. Все перестанет быть черно-белым. Каждый архитектурный вопрос станет "философским" и тд и тп. Но это с опытом, пока что придется по-переписывать,
2) если вы еще учитесь - то в этом процессе в принципе нет ничего плохого.
если в вас заговорил неупокоенный перфекционист - то это хреново, переписывать вы не закончите никогда. либо пока не наберется нужного опыта (см пункт 1)
3) ежели вы делаете это в коммерческой разработке - то все совсем плохо
с точки зрения любого бизнеса - абсолютно неважно насколько гениален, прост и поддержваем Ваш код. Если нет явных багов то работать он будет в общем случаем абсолютно точно так же. А то чем занимаетесь вы - пустая трата ресурсов (времени и денег)
Ибо мудрость гласит - "пока ты спишь - враг качается"
Если перевести на наш язык - пока ты в сотый раз переписываешь одно и тоже конкуренты уже наговнокодили и давно увели наших клиентов. Поэтому я бы посоветовал еще учитывать такой фактор - "горит ли это изменение прямо сейчас". Если не горит - сделаем когда загорит, сейчас нужно быстро в продакшн выходить и нести наработки инвесторам.

Немного сумбурно написал
Если в кратце:
- вначале больше учимся чем пишем
- перфекционизму нет предела
- правильно приоритезируй свою работу
- мой руки перед едой
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Сохранять единую межблочную интеграцию поможет interfaces.
Также, ознакомьтесь с паттернами проектирования.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@red-barbarian
Вот думаю: Зачем юзеру 7 методов связанных с рейтингом?
Насчет переписывания. Обычное дело узнав что-то новое начинаешь пихать это везде. Куда надо и куда не надо. Чувство меры приходит только со временем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
iGooods.ru Санкт-Петербург
от 70 000 руб.
от 80 000 руб.
Blogman Оренбург
от 20 000 до 50 000 руб.
21 авг. 2018, в 20:22
530 руб./в час
21 авг. 2018, в 19:08
500 руб./за проект
21 авг. 2018, в 18:45
50000 руб./в месяц