Формы в Laravel

Многие фреймворки имеют встроенную поддержку генерации форм. В Laravel так было изначально, но затем формы выделили в отдельный компонент laravelcollective/html. В самом Laravel осталось буквально несколько элементов: защита от CSRF и поддержка дополнительных методов HTTP в HTML-формах.

Для установки этого компонента выполните эту команду:

composer require "laravelcollective/html"

Полезные настройки для vim

Вставляем в ~/.vimrc

set tabstop=4
 
syntax on " Syntax highlighting
 
set showmatch " Shows matching brackets
 
set ruler " Always shows location in file (line#)
 
set smarttab " Autotabs for certain code
 
set shiftwidth=4

Фаулер о добавлении новой функциональности

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

Мартин Фаулер

О преждевременной оптимизации

 . 

«Преждевременная оптимизация — корень всех зол»

Дональд Кнут

статья «Structured Programming with go to Statements» в сборнике «Computing Surveys» (Vol. 6, № 4, декабрь 1974, стр. 268)

Эрик Эванс о едином языке команды разработки

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

Эрик Эванс о разнице диалектов

Проект сталкивается с серьезными проблемами, когда в нем отсутствует единый
язык. У специалистов в предметной области есть свой жаргон, а у разработчиков ­
собственный язык, приспособленный для описания предметной области в терминах
программной архитектуры.
Терминология повседневных дискуссий оторвана от терминологии, внедренной код
(а это, в конце концов, главный продукт, создаваемый в проекте) . Даже один и тот же
человек пользуется двумя разными языками на письме и в разговоре, так что самые
критические положения предметной области часто выражаются в промежуточной
форме, не фиксируемой в коде или даже в письменной документации.
Необходимость в переводе затрудняет коммуникацию и ослабляет интенсивность
переработки знаний. Ни один из диалектов задействованных сторон не может служить общим языком, поскольку ни один из них не служит всем поставленным целям.

Эрик Эванс о правилах предметной области

 Переработка знаний становится нетривиальным процессом именно тогда, когда сами знания представляют собой нечто большее, чем набор объектов и числовых показателей — ведь в заданных правилах делового регламента (алгоритмах операций, соотношениях между понятиями предметной области) могут иметься противоречия. Специалисты обычно не осознают, насколько сложны происходящие у них в уме процессы: в ходе работы применяются соотношения и правила, устраняются противоречия, пробелы в знаниях заполняются с помощью интуиции и здравого смысла. Но программа ничего этого не умеет. Соотношения и правила предметной области должны проясняться, конкретизироваться, очищаться от противоречий или вообще отменяться в процессе совместной переработки знаний с участием программистов и специалистов.

Эрик Эванс о связи модели и языка обсуждения проекта

Используйте модель как основу для языка. Побуждайте разработчиков пользоваться им во всех видах внутригруппового взаимодействия, а также в коде. Пользуйтесь одним и тем же языком в диаграммах, письменной документации и особенно при
разговоре.
Устраняйте трудности путем экспериментирования с альтернативными выражениями, отражающими альтернативные модели. Затем выполняйте рефакторинг кода,
переименовывайте классы, методы и модули, чтобы добиться соответствия новой модели. Ликвидируйте путаницу в терминологии путем устных обсуждений — таким же
образом, как мы приходим к согласию о значении обычных слов.
Осознайте, что изменения в ЕДИНОМ ЯЗЫКЕ — суть изменения в модели.
Специалисты в предметной области должны возражать против терминов или структур, неудобно или недостаточно передающих суть явлений из их области. А разработчикам следует отслеживать любую неодзнозначность и непоследовательность, потому
что из-за них пострадает архитектура программы.

Эрик Эванс, определение термина «модель»

Модель — это набор понятий, существующих в головах у создателей проекта, вместе с названиями (терминами), отношениями и взаимосвязями, отражающими их понимание предмета. Термины и взаимосвязи образуют семантику языка, даптированного к предметной области, но достаточно точного и для технических нужд разработки. Это та нить, которая соединяет модель с кодом и позволяет ей органично вплетаться в процесс разработки.