быстрый результат
просто найти и проверить перед использованием
копирование best practices
уменьшение риска
увеличивает продуктивность
«Cargo cult programming» — это использование паттернов без четкого понимания того, для чего они нужны и какими обладают достоинствами по сравнению с альтернативными решениями. Такое использование несет гораздо больше вреда, нежели пользы.
Fred doesn’t know why the code is failing because he didn’t know why it worked in the first place. It seemed to work, given the limited “testing” that Fred did, but that was just a coincidence.
programmers who understand what the code does, but not how it does it
Spaghetti - расползание кода на одном этаже программы.
Golden hammer - применение какого-то конкретного паттерна для решения всех возможных и невозможных задач.
Blind faith - заключается в доверии программиста к какому-либо коду, включая свой собственный.
Programming by permutation - это программирование методом подбора.
Что это?
Фрагменты кода - это шаблоны, облегчающие ввод повторяющихся шаблонов кода.
Как использовать?
- расширение для многих популярных языков и фреймворков для IDE
- создание кастомных snippets
Как это работает?
| Veriables | ||
| 1 json file для каждого языка | ||
| Сохранение template с фрагмента кода | ||
| Трансформация veriables | ||
| Назначение клавиш клавиатуры |
можно получить доступ в VS Code через:
File > Preferences > User Snippets (Windows)
Code > Preferences > User Snippets (macOS)
Каждый файл JSON для конкретного языка программирования имеет пример по умолчанию в комментариях, демонстрирующий использование фрагментов кода.
TM_SELECTED_TEXT Текущий выбранный текст или пустая строка
| "${TM_FILENAME/[\\.]/_/}" | example-123_456-TEST.js | Replace the first . with _ |
|
File > Preferences > User Snippets (Windows)
typescript.json
{ "multiPageBot": { "prefix": "multiPageBot", "body": [ "export class $1_$TM_FILENAME_BASE extends MultiPageBot {", "\tprotected loopScope = '$3';", "\tprotected pagination = new Pagination('$4');", TL;TR "\t}", "}", ], "description": "multiPageBot basic setup" },
GO
FIND
WRITE TEMPLATE
USE
prefix + tab