@IgoNsk
backend web developer

Где можно потренироваться написанию «идеального кода»?

Всем привет!

Я уже 7 лет занимаюсь разработкой приложений разного уровня сложности для WEB, и использую связку php5+mysql+js. И за это время удалось изучить и успешно применять множество разных и интересных технологий: php фреймворки, составление сложных sql запросов и оптимизация БД, понимание устройства и работы с linux-server'ом. Поставленные мне задачи я успешно решаю, и они выполняют свои задачи - тут все OK.

НО я все чаще замечаю, что проблемы которые у меня возникают в работе связанны с архитектурными ошибками в коде. Например неправильная иерархия классов, которая либо усложняет задачу, либо приводит к тому, что в будущем такой код становится все тяжелее сопровождать.

И еще сильнее это проблема подтвердилась совсем недавно. Мне понравилась одна вакансия, и я по ней обратился к работодателю. Перед собеседованием надо было выполнить некое тестовое задание. Я его выполнил, мое решение было рабочим, но мне отказали в дальнейшем собеседовании по причине неудачного архитектурного проектирования кода.

И я чувствую, что не только у меня такие проблемы. Навряд ли все пишут идеально спроектированный ООП код, а те кто его пишут не сразу к этому пришли.

Те кто проходил через это, посоветуйте, плиз - как быть?

Наставника гуру у меня нет ни на работе, ни среди друзей.
Книги - фигня. читал - но все равно когда садишься сам решать конкретную задачу - получается не очень)
Участвовать в open source проектах - это реально поможет в данной ситуации?
Может есть какие нибудь площадки, где люди могут решать задачи, а их решения могут комментировать другие участники и вставлять свои комментарии как надо а как не надо делать?

В общем буду признателен за любой совет! Заранее спасибо)
  • Вопрос задан
  • 4045 просмотров
Пригласить эксперта
Ответы на вопрос 10
aioon
@aioon
Я его выполнил, мое решение было рабочим, но мне отказали в дальнейшем собеседовании по причине неудачного архитектурного проектирования кода.

изучай чужой код
Ответ написан
Комментировать
Mike77
@Mike77
lamp sf2 yii разработчик
патерны твое все
Ответ написан
Комментировать
Попробуй по участвовать в open source проектах. Попытка - не пытка.
А лучше посмотри как это устроено во в фреймворках, может от туда почерпнешь знаний.
Ответ написан
Комментировать
dmko
@dmko
Php для изучения ооп как-то ни то, попробуйте изучить RoR, как ни странно, изучая новые языки программирования, понимаешь как работают те что знал раньше...
Ответ написан
@IgoNsk Автор вопроса
backend web developer
Книги - фигня.

Это Вы через 7(!) лет поняли?
Может Вы не те книги читаете, тут "PHP на 1,2,3 ..." не хватит точно.


Не, такое не читаю - я поклонник серии "PHP для чайников, Joomla за 24 часа и т.д.".

А если серьезно, то во фразу вырванную Вами из контекста, я вкладывал другой смысл. Я читал книги по паттернам проектирования, по написанию идеального кода и прочие лучшие практики. Но одно дело прочитать, а другое дело в абсолютно произвольной ситуации уметь эти паттерны применить плюс грамотно закладывать архитектуру кода.
По крайне мере МНЕ книги в этом не помогли (например, Паттерны проектирования от банды четырех).

Посоветуйте что нибудь по паттернам с хорошими примерами - я с удовольствием почитаю.

Может Вы слышали про github или stack overflow?

Слышал

p.s. Смысл Вашего поста заключался в том, чтобы постебать надо мной? Ибо совета я тут, честно говоря, не увидел.
Ответ написан
Комментировать
@aksenovak
Книги - фигня.

Это Вы через 7(!) лет поняли?
Может Вы не те книги читаете, тут "PHP на 1,2,3 ..." не хватит точно.

Может есть какие нибудь площадки, где люди могут решать задачи, а их решения могут комментировать другие участники и вставлять свои комментарии как надо а как не надо делать?

Может Вы слышали про github или stack overflow?
Ответ написан
Популярные фреймворки написаны весьма неплохо, их следует изучить (что-то можно почерпнуть из Zend'а, что-то из Yii и т.д.).

Из книг, которые просто не могут не помочь: "Совершенный код" (Макконнелл), "Рефакторинг. Улучшение существующего кода", "Архитектура корпоративных программных приложений" (обе — Фаулер).
Ответ написан
Такая же беда, но у меня еще плачевнее.
Я даже ООП осилить не могу, пока
Ответ написан
Комментировать
iproger
@iproger
Безответственный гений
Я студент с небольшим опытом в пару лет, но для себя решил развиваться (и в ООП): 1 на своих проектах; 2 на новой работе, да именно каждая новая дает большой прирост.

Я, если честно, использую наследование в 99% случаях, хватает. А абстрактные и интерфейсы - лишь редко, да и то, ради интереса. Пока не нашел им применение, когда работаешь с тем же фреймверком (php).
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы