Добрый вечер господа, после написания очередного кода на JS, мой товарищ сказал мне писать правильно код изначально, ибо пишу я по ходу мыслей, т.е за написание какой-то функции я могу изменить алгоритм дважды, трижды но суть и результат будут одни и теже, вопрос заключается в этом - как писать код правильно? Как правильно спроектировать функцию на выполнении чего либо, вопрос может показаться глупым, и детским, но меня всегда терзает сомнение, что я где-то, что-то не так написал.
Например если взглянуть на материал (1) то там можно обнаружить на строке 8 такую вещь:
;(function (factory) {
Почему функция обернута в скобки, как ее вызвать?
Зачем перед скобками точка с запятой?
Меня интересуют подобные секреты в js, можете мне прояснить что к чему, объяснить как проектировать какие-либо функции а так-же посоветовать литературу для самосовершенствования в данном направлении?
Исходный материал
(1) https://github.com/js-cookie/js-cookie/blob/master/src/js.cookie.js
Любой дурак сможет написать код, который поймет машина. Хорошие программисты пишут код, который сможет понять человек. Martin Fowler
Если в общих чертах, то хороший код - это код, который понятен другому человеку с одного лишь взгляда, он простой и логичный, не содержит в себе нарушения принципов (KISS, DRY, SOLID), а следовательно гибкий. Вам удобно самому работать с подобным кодом, ведь его удобно читать.
Дональд Кнут говорил одну очень интересную вещь:
Помните, что обычно есть решение проще и быстрее того, что первым приходит вам в голову.
Когда пишите код, задавайте себе вопросы, как в будущем этот код может использоваться, что может быть расширено? Сколько времени потребуется на расширение такой архитектуры, а сколько на такое? Есть ли другие решения? Не пишу ли я костыль?
Всегда при написании задайте себе эти вопросы. Вы не сможете написать качественный код, если у вас нет опыта написания подобного кода.
Чтобы писать подобный код нужно очень много тренироваться и практиковаться. Вас не ударит озарение в один день. Плохой код, медленная работа - это все начальные этапы, ведь вы незнаете, почему текущая архитектура плохая и этому не научат в институте, вам нужно познать отрицательный и положительный опыт и на основе его, вы сможете понять всю истину. Открывайте код других библиотек, читайте правила, осваивайте книжки ("Совершенный код" от Макконелла или "Рефакторинг и улучшение существующего кода" Фаулера)
По вопросам Javascript:1. Функция со скобками
(function () {
// код
})();
Это немедленно вызываемая функция в JavaScript (IIFE), т.е. синтаксическая конструкция, позволяющая вызвать функцию сразу же в месте ее определения.
2. Точку с запятой используют для предотвращения ошибки при автоматическом объединении нескольких скриптов в один. Предположим, есть код и в нем есть ошибка:
var a = 5
(function() {})()
Причём ошибку, которую найти иногда довольно трудно, да и сообщение о ней не самое дружественное: «TypeError: 5 is not a function». На самом деле, тут пропущена точка с запятой. Интерпретатор считает, что ему встретились две части выражения, между которыми пропущен какой-то знак. Эта ситуация часто встречается при автоматическом объединении двух скриптов в один.
Обычно для этого добавляют точку с запятой сразу перед такими блоками.
Вместо чтения глупых цитаток и общих детских слов об успехе, советую обратиться к единственному правильному способу, без которого написание хорошего кода вообще невозможно; проверенному всеми авторами этих самых цитаток, это учение самому языку.
Все секреты уже написаны. Всё изложено более чем подробно уже множество лет назад.
Литература от o'reilly, русский портал-учебник по js.
Разве этого мало? Что сдерживает? Мысль о том, что какие-то секреты языка лежат слишком глубоко и неразумно тратить слишком много времени на их изыскания, когда можно просто задать вопросик на SO и сразу же залить глаза истиной и финтов js (видимо, черпая из цитаток состоявшихся программистов, ага).
Короче: секретов нет. Просто берешь и пишешь код.
Чтобы писать хороший код, нужно его писать. Писать много и часто.
В принципе, можно заменить всё сказанное на предмет рисования, создания музыки или готовке еды - смысл будет один и тот же.
Просто практика, но просто - не значит легко (:
точка с запятой исключает редкую ошибку которая может возникнуть
var b = 4
(function() {})()
Точки с запятой не обязательно ставить в js в конце строк, некоторые этим пользуются, и как результат - ошибка (запусти в консоли). Функция объявленная таким странным образом является частью функционального выражения. Такая анониманая функция выполняется в потоке кода и не засоряет объект переменных. Тут подробнее http://dmitrysoshnikov.com/ecmascript/ru-chapter-5-functions/
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем ПриветЕсть некий скрипт который, в зависимости от полученного значения, вставляет в ячейку таблицы знак true или false (Знак зеленого цвета...
Имеется простая разметка в виде менюшки, div'ов, на которые пункты менюшки ссылаются и небольшого stick'а, который должен двигаться под менюшкой...