На js сложно наговнокодить

потому что на JS довольно сложно наговнокодить в «самом начале», когда тебе просто надо по нажатию на кнопочку прятать один элемент и показывать другой ddf1bgu tadalafil canada. Потом приходят колбэки и асинхронный отстрел всех твоих асинхронных ног внутри замыкания — так что твои асинхронные ноги оказываются и не твоими вовсе, вот на этот моменте больше половины и отсеивается

Что такое SPA

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

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

Далее, что же делать с данными, как их использовать? В обычной ситуации веб-сайта, все что делает JavaScript-программист, это «наворачивает» интерфейс (всякие проверки форм на лету, выпадающие менюшки, автокомплиты, измененные контролы и прочие навороты). Но что делать если сервер не отдает нам готовые страницы, а отдает только данные? Вот тут то и приходят на помощь концепции вроде MVC и пр., библиотеки/фреймворки вроде бэкбона, реакта, ангуляра, эмбера и т.п. Они позволяют разбить управление клиентом на несколько абстракций, без которых, перегонять данные сразу в шаблонизатор и выводить на экран будет просто самоубийством с точки зрения проектирования и поддержки.

Суть подобных абстракций в том, что они реализуют только свою логику и не лезут к соседям. Например роутер умеет только вызывать разные функции в зависимости от урла, модель умеет хранить в себе данные, получать и отправлять их на сервер, вьюха умеет следить за своей моделью и перерисовывать контент, кода модель меняется и т.д. Так что главная ваша задача — понять эти концепции и потренироваться делать именно их. Для начала можно даже какую-то свою простенькую реализацию написать без использования известных библиотек.

Как только вы это освоите, все современные библиотеки/фреймворки перестанут быть для вас черным ящиком и всё что нужно будет учить, это синтаксис их API и концепции, которыми они оперируют.

Критерии Code Review

* Безопасность:
— Каждый аргумент метода простого типа должен проверяться на тип в случае его проксирования и на граничные значения в случае обработки. Чуть что не так — бросается исключение. Если метод с кучкой аргументов на 80% состоит из поверки из аргументов — это вполне норм))
— Никаких trigger_error, только исключения.
— Исключения ДОЛЖНЫ быть человеко-понятны, всякие «Something went wrong» можно отдавать пользователю, но в лог должно попасть исключение со стектрейсом и человеко-понятным описанием, что же там пошло не так.
— Каждый аргумент (объект) метода должен быть с тайпхинтингом на этот его класс, или интерфейс.
— За eval как правило шлю на **й.
— @ допускается только в безвыходных ситуациях, например проверка json_last_error.
— Перед работой с БД — обязательная проверка данных.
— Никаких == и !=. Со swtich — единственное исключение, по ситуации.
— Если метод возвращает не только bool, а еще что-то — жесткая проверка с ===, или !== обязательна.
— Никаких условий с присваиваниями внутри. while($row = …) — тоже идет лесом.
— Магические геттеры/сеттеры разрешаются только в безвыходных ситуациях, в остальном — запрещены.
— Конкатенации в sql — только в безвыходных ситуациях.
— Параметры в sql — ТОЛЬКО через плейсхолдеры.
— Никаких глобальных переменных.
— Даты в виде строки разрешаются только в шаблонах и в БД, в пхп коде сразу преобразуется в \DateTimeImmutable (в безвыходных ситуациях разрешено \DateTime)
— Конечно зависит от проекта, но как приавло должно быть всего две точки входа: index.php для web и console(или как-то по другому назваться) — для консоли.
Читать далее →

Почему в России нет стартапов

<img class="aligncenter size-full wp-image-312" src="http://code-cola.ru/wp-content/uploads/2016/09/screenshot-ebanoe.it-2016-09-13-04-23-47.png" alt="screenshot-ebanoe-it-2016-09-13-04-23-47" width="849" height="425" srcset="http://code-cola.ru/wp-content/uploads/2016/09/screenshot-ebanoe.it-2016-09-13-04-23-47.png 849w, http://code-cola.ru/wp-content/uploads/2016/09/screenshot-ebanoe.it-2016-09-13-04-23-47-300×150.png 300w, http://code-cola.ru/wp-content/uploads/2016/09/screenshot-ebanoe.it-2016-09-13-04-23-47-768×384.png 768w, http://code-cola cheap tadalafil.ru/wp-content/uploads/2016/09/screenshot-ebanoe.it-2016-09-13-04-23-47-700×350.png 700w, http://code-cola.ru/wp-content/uploads/2016/09/screenshot-ebanoe.it-2016-09-13-04-23-47-800×400.png 800w» sizes=»(max-width: 849px) 100vw, 849px» />

О сеошниках

все сеошники — страшный рак, убивающий интернет their website. Именно из-за них невозможно найти что-либо путное, оно скрывается под многокилометровой толщей коммерческих говен, которые их стараниями выплывают на каждый твой запрос, как вода, прорвавшая плотину. Интернет — это Свобоная Зона, принадлежащая каждому, кто к нему подключен, а сеошники превращают интернет в еще один бастион проклятого замка потреблядства, баблодела и коммерческого нае…лова. Помни, анонинумс, какждый сеошник — твой самый страшный и злейший враг.

О документации битрикса

<img class="aligncenter size-full wp-image-263" src="http://code-cola.ru/wp-content/uploads/2016/04/screenshot-dev-1c-bitrix-ru-2016-04-27-04-22-08-e1461834001575 pop over to this site.png» alt=»screenshot-dev 1c-bitrix ru 2016-04-27 04-22-08″ width=»674″ height=»518″ srcset=»http://code-cola.ru/wp-content/uploads/2016/04/screenshot-dev-1c-bitrix-ru-2016-04-27-04-22-08-e1461834001575.png 674w, http://code-cola.ru/wp-content/uploads/2016/04/screenshot-dev-1c-bitrix-ru-2016-04-27-04-22-08-e1461834001575-300×231.png 300w» sizes=»(max-width: 674px) 100vw, 674px» />

«Не удалось обнаружить код вызова компонента.»

Лютая, ненавистная ошибка you could try these out. Возникает из ниоткуда, так же внезапно пропадает. На оф. форуме можно найти рецепты на любой вкус, от настроек конфигурации апача до откровенного шаманства со вставкой пустых тегов перед вызовом компонента.
Меня спасает следующий очевидный способ

 <div class="main-menu">
    <?$APPLICATION->IncludeComponent(
                    "bitrix:menu",
                    "",
                    Array(
                        "ROOT_MENU_TYPE" => "top",
                        "MAX_LEVEL" => "1",
                        "CHILD_MENU_TYPE" => "top",
                        "USE_EXT" => "N"
                    )
                );?>
       <!--<?$APPLICATION->IncludeComponent( //да потому что иди нахуй, вот почему
                    "bitrix:menu",
                    "",
                    Array(
                        "ROOT_MENU_TYPE" => "top",
                        "MAX_LEVEL" => "1",
                        "CHILD_MENU_TYPE" => "top",
                        "USE_EXT" => "N"
                    )
                );?>-->
</div>

также опционально помогает закомментить строку define("BX_UTF", true) в dbconn.php

АЯКС! АЯКС!11

screenshot-www weblancer net 2016-04-04 15-37-02

 

<img class="aligncenter size-full wp-image-254" src="http://code-cola.ru/wp-content/uploads/2016/04/129kih.jpg" alt="129kih" width="500" height="1122" srcset="http://code-cola.ru/wp-content/uploads/2016/04/129kih.jpg 500w, http://code-cola.ru/wp-content/uploads/2016/04/129kih-134×300.jpg 134w, http://code-cola view it now.ru/wp-content/uploads/2016/04/129kih-456×1024.jpg 456w» sizes=»(max-width: 500px) 100vw, 500px» />