Wiki Category: development

Can.js

Сравнение Angular, Backbone, CanJS и Ember

Итоговая табличка из статьи

Оценки Angular Backbone CanJS Ember
Функции 5 2 4 5
Гибкость 3 5 4 3
Порог входа и документация 2 4 5 3
Продуктивность разработки 4 2 4 5
Сообщество 4 5 3 4
Ecosystem 4 5 2 4
Размер 4 5 5 2
Производительность 3 4 5 4
Зрелость 4 5 4 3
Защита от утечек памяти 5 3 5 5
Сумма 38 40 41 38
ko-logo

Knockout.js

Мнения с Хабра

Лучше Knockout-а вряд ли что-то можно придумать.

AngularJS?

я бы на их месте использовал бы html5 атрибут data все таки не зра его вводят, вместо своего ng

Ну, там есть такая возможность: data-ng- вместо ng-

Но сути это не меняет — Нокаут лучше из-за самого сильного механизма observables. Я могу иметь наблюдаемое проперти, которое в свою очередь возвращает в качестве значений другой наблюдаемое проперти. Причем, все они могут быть зависимыми без указания мной явных цепочек зависимостей.

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

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

backbone

Backbone.js

Backbone — не фреймворк, это библиотека.
Backbone is a library, not a framework, and plays well with others.

Статьи от Gaperton`а (Vlad Balin)

Backbone.js on Steroids

Расскажу, пожалуй, про старую тему – разработку одностраничных JS-приложений. С тех пор, как я послежний раз об этом писал, прошло много времени – наверное, года 3. И с тех пор много чего изменилось. Появилось множество разных JS фреймворков, в моду вошел two-way databinding.

Однако, мэйнстримом (примерно 40% применений) на данный момент является Backbone.js, работающий в связке с jQuery и Underscore.js. Причиной этого, возможно, является его простота. Backbone прост в том смысле, что ему достаточно легко обучить команду, собирающуюся писать одностраничное приложение, и не имеющую в этом опыта. Это безусловный плюс backbone (как и его популярность), однако, его минусом является то, что он слишком прост. То есть, на голом backbone не так просто сделать что-то, кроме совсем простого.
вся статья

Допустим, у нас есть группа разработчиков на PHP, которые знают чуть чуть JS и jQuery. Что самое простое мы можем сделать, чтобы начали писать браузерное приложение, и были продуктивны немедленно?

Мы можем попробовать использовать тот же принцип, и те же архитектурны правила, к которым они привыкли в PHP. У них были шаблоны с встроенным PHP? Отлично, мы будем использовать такие же шаблоны со встроенным JS, которые будут разворачиваться в браузере. Они использовали jQuery? Отлично, мы сохраним jQuery.

Нам остается задать этому какую-то структуру. Элемент UI – это будет объект View с присоединенным DOM-элементом, и методом ‘render’, который должен разворачивать шаблон в присоединенный элемент. Помимо этого, View должен уметь перехватывать события UI, и вызывать свои методы.
4. BackboneJS

Кому-то могло показаться после прочтении предыдущей статьи, что мне “просто нравится бэкбон“, или что я считаю его лучшей в мире технологией. Это не так. Мы начали с backbone по двум причинам: (1) многие с него начинают, и (2) это, пожалуй, минимально возможный фреймворк для браузерных приложений.
5. Backbone Sucks


Marionette и Chaplin — фреймворки, которые работают поверх популярной библиотеки Backbone.js. Оба хотят облегчить разработку одностраничных JS-приложений. В таких приложениях, фронтэнд выполняет задачи, которые в прошлом выполнялись на сервере (вроде рендеринга HTML из данных).

Бэкбон спроектирован, как минималистичная библиотека, а не как полноценный фреймворк. Мой опыт показал, что Бэкбон хорош только как ядро архитектуры JS-аппликейшна. И Марионетка, и Чаплин появились, потому что Бэкбон предоставляет мало структурирования для реальных приложений. Они решают те же проблемы. Так что между ними довольно много сходств — возможно, даже больше, чем отличий.

хабр: MVC-фреймворки на JavaScript: сравнение Marionette и Chaplin

JsRender

http://www.jsviews.com/#jsrender

Хабр: JsRender: Новое поколение jQuery Templates

Использование JsRender с JavaScript и HTML

Более сложная функциональность шаблонов JsRender

P.S.
с Хабра
Шаманство всё это. Плагин для jQuery без jQuery, под который нужно учить отдельный синтаксис.

Лучше Knockout-а вряд ли что-то можно придумать.

nodejs-new-white-pantone

Node.js

Теоретически очень перспективная платформа.

По эффективности работы в рантайме – иногда лучше даже Джавы. Да и по скорости создания простых REST приложений.
Но, согласен с выводами в После года использования NodeJS для разработки

Я потратил год, пытаясь заставить JavaScript и более специфичный Node работать на нашу команду. К сожалению, за это время мы потратили больше часов на поиск документации, знакомство со «стандартами», споры о библиотеках и отладку тривиального кода, чем на что-то полезное.

Посоветовал бы я Node для больших проектов? Абсолютно нет. Будут ли люди использовать его всё равно? Конечно будут. Я тоже пытался.

Вполне возможно вы удивлены, что я делаю сейчас? Сейчас я продолжаю писать главные части наших продуктов и API, используя Python.


Сервлет

Сервлетные фильтры

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

Читать дальше

tapestry
86a63efa391f4c4792939a0488d03ed0

Качество

Выберите любые два, но только два пункта

  • Быстро
  • Качественно
  • Дешево

quality_development

PHP

PHP

Старая картинка.

PHP_Java

Почему PHP не умирает

это часть ответа.

вторая часть – то за что его ругают и есть его преимущество.

третья – точка пересечения с каждым годом после 5.3+ сдвигается вправо, по оси – сложности веб-приложения


В интернете очень много устаревшей информации, которая приводит к заблуждению, распространению неверных решений и написанию плохого кода у начинающих PHP-разработчиков. Это нужно остановить. PHP: Правильный Путь — легкочитаемое руководство для быстрого ознакомления справилами эффективного использования PHP, принятыми стандартами написания кода и ссылками на признанные руководства по всему интернету.

Более полное и свежее ессно на английском PHP: The Right Way


au-board

Если вы задумали создать свой OLX

С завидной регулярностью к нам приходят запросы «а как дать возможность посетителям добавлять свои товары, а как сделать что то похожее на OLX или SLANDO»?

Вышел PHP 7.1

Вы слушаете «Пятиминутку PHP», выпуск номер 25 — подкаст о новостях из мира PHP, интересных постах в блогах и современных подходах к разработке.

Рад всех поздравить с выходом PHP версии 7.1.0. Давайте сделаем краткий обзор RFC, вошедших в этот релиз.

Подключение GA и Яндекс Метрики

Учитывает режим отладки, и исключает срабатывание для залогиненных пользователей

Мапперы, ORMы, LINQ для PHP

RedBeanPHP is an easy to use ORM for PHP. It’s a Zero Config ORM lib that ‘automagically’ builds your database schema. Requirements Short version first… minimal requirements GNU/Linux, BSD, Windows PHP 5.3.0 or higher (PHP 5.3.4+ recommended) PDO plus driver for your database Multibyte String Support

86a63efa391f4c4792939a0488d03ed0

Быстродействие PHP

PHP programs versus Python 3
PHP programs versus Ruby
Web Framework Benchmarks

git_logo

Git

А как без него?

Предлагаю рассмотреть преимущества от использования Git по сравнению с работой без него, например, только по FTP-протоколу.
5 причин внедрить Git для Product Owner’a

Git force pull to overwrite local files


– Один разраб одним пушем может убить все 3 проекта, совсем убить без возможности восстановления.

разработчик может выполнить «git push —force» и изменить/удалить всю историю изменений.

git push -f
А потом
git prune
или
git gc

How to use git to lose data

Protected branches and required status checks


Машина времени в git

3 режима команды git reset: –soft, –mixed(по умолчанию), –hard

Раскрытие тайн reset


Хранение конфигов в Git’е

мне как-то помог
.gitattributes с merge=ours

Параметр AutoCRLF

Если работаете в Netbeans и под Windows, и аплоадите еще и напрямую, то выставьте autocrlf = input, и

Два столпа JavaScript: функциональное программирование

Почтенный мастер Ку Чи шел со своим учеником, Антоном. Надеясь вступить с мастером в дискуссию, Антон сказал: «Учитель, я слышал, что объекты это очень хорошая вещь — это правда?» Ку Чи с сожалением посмотрел на своего ученика и ответил: «Мой глупый ученик, объекты — это замыкания для бедных.» Антон поклонился и вернулся в свою келью изучать замыкания. Он внимательно прочитал всю серию работ «Lambda: The Ultimate…», потом все остальные статьи по этой теме, и создал небольшой интерпретатор с использованием объектов эмулирующих функционал замыканий. Он многому научился, и стал искать встречи с мастером, чтобы похвастатья. На своей следующей прогулке с Ку Чи, Антон сказал: «Учитель, я усердно изучал этот вопрос, и теперь понимаю, что объекты действительно являются замыканиями для бедных.» Ку Чи ударил Антона своей палкой и сказал: «Когда же ты научишься? Замыкания — это объекты для бедных». В этот самый момент Антон достиг просветления.

Читать дальше

Два столпа JavaScript: наследование через прототипы

«Проблема объектно-ориентированных языков в том что они тащут за собой всю неявную среду. Вы хотите получить банан, но кроме банана в нагрузку получаете гориллу, и все чертовы джунгли!». ~ Джо Армстронг

Читать дальше

Почему эти ваши модные NoSQL решения не так уж хороши

Тогда что же выбрать в качестве основной СУБД для нового проекта? Совет стандартный — возьмите любую РСУБД по вкусу. Если конкретнее, то я бы рекомендовал PostgreSQL, но в крайнем случае и какая-нибудь MariaDB, пожалуй, будет как минимум не хуже Монги. Затем масштабируйтесь вертикально до тех пор, пока это позволяет кошелек. Может так получиться, что для всего проекта вам будет достаточно одного сервера, плюс еще одной реплики для фейловера. Если это ваш случай, то вам крупно повезло, поздравляю! Иначе все тоже не так уж плохо, так как обычно 90% операций идут только на чтение, и их можно спокойно распределить по множеству реплик.

Вот если вы скоро упретесь на запись, только тогда следует подумать о разбиении базы данных на несколько, возможно, даже с шардингом. Хотя лучше обойтись без него, просто имея несколько совершенно независимых баз. К этому моменту вы уже будете хорошо понимать, что и куда можно перенести или как лучше пошардить, чего нельзя сказать о ранних этапах развития проекта. Также вы будете понимать, какие данные и в какое NoSQL решение можно перенести, если, конечно, в этом вообще есть смы

Читать дальше

Люди не умеют оценивать

Исследователи попросили несколько групп разработчиков дать оценку некоторых программистких задач, описанных в спецификации. В среднем, группы оценили работу в 100 часов (я пропорционально привел все данные в исследовании к круглым цифрам, чтобы было проще запоминать).

После чего, начались следующие эксперементы:

Читать дальше
jooctrine-doctrine-orm-in-joomla-4-638

Вьетнам компьютерной науки

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

оригинал: http://citforum.ck.ua/database/articles/vietnam/

Читать дальше