O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Как писать на PHP и не стать быдло-кодером

3.439 visualizações

Publicada em

- почему PHP программисты снискали дурную славу;
- что делать, чтобы стать хорошим программистом;
- как писать идеальный код;
- что такое командная разработка проекта;
- учет позиции бизнеса при разработке проекта;
- основные задачи, который должен решать программист;

Publicada em: Software
  • Seja o primeiro a comentar

Как писать на PHP и не стать быдло-кодером

  1. 1. Как писать на PHP и не стать быдло-кодером by Kirill Kovalchuk
  2. 2. Что такое программирование?
  3. 3. Программирование - это процесс создания компьютерных программ.
  4. 4. Что такое программирование? Programming is one of the only things in the world that you can do where you can sit down and make something new from scratch … whatever you want © Mark Zuckerberg
  5. 5. Язык программирования PHP PHP — это маленькое зло, созданное некомпетентными новичками, в то время как Perl — это большое и коварное зло, созданное умелыми, но извращёнными профессионалами. © Jon Ribbens
  6. 6. Почему PHP-программисты снискали дурную славу?
  7. 7. Низкий порог вхождения ● Освоить процедурное программирование на PHP не составляет труда ● Хорошая документация ● Запустить свой первый сайт - без проблем Уровень “программиста” — “Интересующийся”
  8. 8. CMS ● Не нужно думать ● Не нужно программировать ● Куча плагинов Уровень “программиста” — “Настройщик Джумлы”
  9. 9. Не с кого брать пример ● Делаем как Вася посоветовал ● Копи-паста с форумов ● Много уже существующего говнокода Уровень “программиста” — “Ctrl+C – Ctrl+V”
  10. 10. – Я пишу на PHP, можно ли мне искупаться в проруби на крещение? – УТОНЕШЬ, ПЁС!
  11. 11. Что делать?
  12. 12. Оно мне надо? ● Баги ● Бессонные ночи ● Красные глаза ● Бессонница ● Сорванные сроки ● Социофобия ● и т.д. ● Удовлетворение ● Интерес ● Творческий процесс ● Одобрение ● Тебе повезло © ● $$$ :) ● и т.д.
  13. 13. Основы ● Синтаксис языка ● ООП ● Декомпозиция ● и т.д. Уровень программиста — “Новичок”
  14. 14. Поставьте себе задачу ● Клон Твиттера ● Свой блог ● Любой сайт на интересующую тематику Уровень программиста — “Перспективный новичок”
  15. 15. Изучите фреймвёрк ● Быстрая разработка ● Учитесь на хорошем примере ● Поддержка сообщества Уровень программиста — “На правильном пути”
  16. 16. Онлайн материалы ● lynda.com ● teamtreehouse.com ● codecademy.com Уровень программиста — “Назад дороги нет”
  17. 17. Изучение чужого кода ● github.com ● bitbucket.com Уровень программиста — “Уже в пути”
  18. 18. Научите меня! ● Работа стажером в крупной компании ● Уроки Васи ● Курсы Уровень программиста — “Хочу всё знать”
  19. 19. Будьте основательны ● SOLID ● Паттерны проектирования ● Соглашения Уровень программиста — “Делаю всё, как надо”
  20. 20. Изучите другой язык ● Расширяется кругозор ● Появляются новые идеи ● Портирование готовых идей на PHP Уровень программиста — “Yeah, baby! Nerds are sexy!”
  21. 21. Работа над проектом на примере работы на одним проектом
  22. 22. Идеального кода нет! ● Борьба с перфекционизмом ● Сначала сделать, а потом довести до совершенства… почти довести ● Пока в Виларибо прогоняют тесты на Continius Integration сервере, в Вилабаджо уже зафигачили всё в продакшн и разгребают баги
  23. 23. Просто сделай это ● Хочу своего клона, который выполнит этот таск пока я буду играть в танчики ● Один из лучших подходов к задаче – просто выполнить её ● Работа сама себя не сделает всё-равно
  24. 24. Ответственность ● Не бойтесь брать ответственность на себя ● Не перекладывайте её на кого-то еще ● Проявляйте инициативу ● В общем, — взрослейте
  25. 25. Технический долг ● В какой-то момент поддерживать существующий legacy-код станет почти невозможно ● Разработка нового кода взамен старого ● Рефакторинг ● Тестирование
  26. 26. Командное взаимодействие ● Главное в разработке – отношения между людьми ● Все бывают не в настроении ● Не будите программиста! ● Вместе мы сила
  27. 27. Скованные одной цепью ● Вы и вся команда должны понимать цели проекта ● Позиция бизнеса - зарабатывать деньги ● Приоритетные задачи — приоритетные
  28. 28. Смотрите шире ● Паттерны – это хорошо, но не панацея ● Эспериментируйте ● Ваш мир заканчивается там, где заканчивается ваше воображение ● Не будьте ретроградом и консерватором
  29. 29. Идеальный код почти...
  30. 30. SOLID ● Облегчает поддержку кода ● Уменьшает технический долг ● Уменьшает количество хардкода
  31. 31. Design Patterns ● Решает типичные проблемы в программировании ● Не старайтесь использовать паттерны там, где их не нужно использовать (там, где нет проблемы)
  32. 32. TDD ● Улучшает качество кода ● Делает ваши классы удобными в использовании ● Сами тесты сразу являются большим плюсом ● Модифицируйте код не опасаясь его сломать
  33. 33. 7 раз отмерь ● Сначала подумай ● UML ● Mindmaps ● Списки Todo
  34. 34. KISS ● Хороший программист не тот, кто может написать длинный однострочник ● Хороший программист пишет понятный другим код ● Пишите обфусцированный код только для олимпиад по обфускации… или просто пишите на Perl
  35. 35. DRY ● WET - плохо ● Shotgun surgery - типичный антипаттерн при несоблюдении принципа DRY ● Проектирование ● Рефакторинг
  36. 36. Code reuse ● Унификация ● SOLID
  37. 37. Документация ● Само-документированный код ● JavaDoc ● Правильное именование ● IDE ● Ссылки на документацию
  38. 38. Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете © Martin Golding
  39. 39. GTD
  40. 40. Мозг ● Хранит 7 +/- 2 единиц информации в оперативной памяти ● Не заставляйте мозг решать вопрос о том, выключили вы утюг или нет ● Оперативную память легко разгрузить — просто запишите текущее состояние где- то еще
  41. 41. Разгрузите мозг ● Список рабочих задач и их приоритеты ● Купить молоко и хлеб ● Посмотреть видео на youtube ● Прочитать статью на лурке ● Позвонить другу, спросить как дела Можно не хранить постоянно в голове!
  42. 42. Сконцентрируйтесь Очень важно сконцентрироваться на одной задаче ● Погружение (5-15 минут) ● Процесс (0.5 - 2 часа) ● Внешнее воздействие или усталость ● Отдохните немного
  43. 43. О докладе
  44. 44. ● Основано на своем опыте ● Совет — это форма ностальгии, способ выуживания прошлого из мусорной кучи, закрашивание свежими красками нелицеприятных моментов и переработке их в нечто более ценное, чем оно было раньше
  45. 45. Обо мне nemoden nemodus kirill.kovalchuk Kirill Kovalchuk Уровень программиста — “Когда будет готово???”

×