Pull to refresh
0
0

PHP Backend — разработчик

Send message

Обзор изменений в новом мажорном релизе Node 8

Reading time4 min
Views23K

30 мая 2017 года в 23:00 по московскому времени вышел новый долгожданный мажорный релиз Node.js 8.0.0. Именно эта линейка версий за номером 8 в октябре 2017 перейдет в Long Term Support — цикл длительной поддержки. Предлагаю вашему вниманию небольшой обзор того огромного количества изменений и дополнений, вошедших в этот релиз.


  • npm 5 (lock-файл!)
  • V8 5.8
  • Node.js API (N-API)
  • async_hooks
  • WHATWG URL парсер
  • повышение безопасности буфера
  • упрощенная промисификация
  • статичные коды ошибок
  • и многое другое!
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments36

Сервер приложений на pl/pgsql

Reading time23 min
Views10K
Артем Макаров, руководитель отдела IT компании «Проект 111», на одном из прошлых PG Day рассказал, как бизнес может решиться на такое решение как постройку собственной ERP-системы на Postgres и application-сервер на хранимых процедурах. Какие из этого последовали плохие, хорошие стороны. Стоит отметить, что Артем никогда не был настоящим программистом, хотя и писал довольно много кода. Скорее его можно назвать анти-менеджер и евангелист, и лоббист для бизнеса IT-решений. Поэтому в его докладе взгляд не только со стороны технического специалиста, но и менеджера.
Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments31

ES6 по-человечески

Reading time11 min
Views581K

От переводчика:
Предлагаю вашему вниманию перевод краткого (действительно краткого) руководства по ES6. В нём можно ознакомиться с основными понятиями стандарта.
Оригинальный текст в некоторых случаях был дополнен или заменён на более подходящий источник. Например, часть определения ключевого слова const является переводом документации с MDN.
Чтобы лучше разобраться в некоторых концепциях (для выполнения качественного перевода) использовалось описание стандарта на сайте MDN, руководство "You Don't Know JS: ES6 & Beyond" и учебник Ильи Кантора.


Перевод выложил на Гитхаб: https://github.com/etnolover/ES6-for-humans-translation. В случае нахождения ошибок пишите, исправлю.
Ссылка на оригинальный текст: https://github.com/metagrover/ES6-for-humans


Update 22.07.2016: добавил опрос про const


Содержание



Читать дальше →
Total votes 62: ↑60 and ↓2+58
Comments87

Если вы решили перейти с PHP на Python, то к чему следует подготовиться

Reading time14 min
Views190K
Думали ли вы когда-нибудь о том, что однажды слишком быстро втянулись в веб-программирование на PHP? И вот уже прошло много лет, у вас хороший опыт, и вы не думаете ни о каких других способах „делать“ веб, кроме как на PHP. Может быть, у вас возникают сомнения в правильности выбора, однако непонятно, как найти способ быстро его проверить. А хочется примеров, хочется знать, как изменятся конкретные аспекты деятельности.

Сегодня я попробую ответить на вопрос: «А что если вместо PHP писать на Python?».

Сам я долгое время задавался этим вопросом. Я писал на PHP 11 лет и даже являюсь сертифицированным специалистом. Я научился его «готовить» так, чтобы он работал в точности, как мне надо. И когда я в очередной раз читал на Хабре перевод статьи о том, как всё в PHP плохо, я просто недоумевал. Однако подвернулся случай пересесть на Ruby, а потом и на Python. На последнем я и остановился, и теперь попробую рассказать вам PHP-шникам, как нам питонистам живётся.


Python с точки зрения PHP-программиста...
Total votes 122: ↑116 and ↓6+110
Comments205

Как создать веб-сайт, используя видео с YouTube в качестве фона?

Reading time9 min
Views86K


Большие видео на заднем плане веб-сайтов — довольно популярный тренд в веб-дизайне. Умело примененные видео могут сделать веб-сайт более драматичным и привлекательным для пользователей.

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

Существуют компании, как, например, Powerhouse или Adidas, которые используют видео в качестве заднего плана сайта, чтобы донести до пользователя определенное сообщение или историю о продукте или услуге.

Хотя и наиболее популярным способом создания видео-фона является использование HTML5 видео тега вместе с некоторыми параметрами CSS, стоит также обратить внимание на альтернативные источники видео, например, YouTube. В этом случае, вам не придется переживать о медленном ответе сервера, потому что запрос будет отправляться напрямик в YouTube.

В этой статье, я покажу вам, как можно построить клевый сайт, использующий видео с YouTube в качестве фона. Мы будем использовать jQuery.mb.YTPlayer.js для редактирования и управления внешним видом нашего видео. Итак, приступим!

Скачать исходники
Демо
Читать дальше →
Total votes 75: ↑45 and ↓30+15
Comments55

Учебник AngularJS: Всеобъемлющее руководство, часть 1

Reading time7 min
Views272K

Содержание


1 Введение в AngularJS
2 Engineering concepts in JavaScript frameworks
3 Modules
4 Understanding $scope
5 Controllers
6 Services and Factories
7 Templating with the Angular core
8 Directives (Core)
9 Directives (Custom)
10 Filters (Core)
11 Filters (Custom)
12 Dynamic routing with $routeProvider
13 Form Validation
14 Server communication with $http and $resource

1 Введение в AngularJS


Angular – MVW-фреймворк для разработки качественных клиентских веб-приложений на JavaScript. Он создан и поддерживается в Google и предлагает взглянуть на будущее веба, на то, какие новые возможности и стандарты он готовит для нас.

MVW означает Model-View-Whatever (модель – вид – что угодно), то есть гибкость в выборе шаблонов проектирования при разработке приложений. Мы можем выбрать модели MVC (Model-View-Controller) или MVVM (Model-View-ViewModel).

Этот обучающий материал задумывался как отправная точка для изучения AngularJS, его концепций и API, чтобы помочь вам создавать великолепные веб-приложения современным способом.
Читать дальше →
Total votes 44: ↑38 and ↓6+32
Comments29

Смелый стайлгайд по AngularJS для командной разработки [1/2]

Reading time5 min
Views39K
После прочтения Google's AngularJS Guidelines у меня создалось впечатление о его незавершённости, а ещё в нём часто намекали на профит от использования библиотеки Closure. Ещё они заявили, «Мы не думаем, что эти рекомендации одинаково хорошо применимы для всех проектов, использующих AngularJS. Мы будем рады видеть инициативу от сообщества за более общий стайлгайд, применимый как для небольших так и крупных проектов».

Отталкиваясь от личного опыта работы с Angular, нескольких выступлений, а также имеющемуся опыту командной разработки, представляю Вашему вниманию этот смелый стайлгайд по синтаксису, написанию кода и структуре приложений на AngularJS.
Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments22

Понимание типов сервисов в AngularJS (constant, value, factory, service, provider)

Reading time6 min
Views191K
Ангуляр поставляется с различными видами служб или сервисов, каждый из которых применяется в своей ситуации.
Имейте в виду, что сервисы, не зависимо от типа, это всегда синглтоны (одиночки).

Примечание: Синглтон это шаблон проектирования, который ограничивает класс таким образом, что у него может быть только один экземпляр. Именно с этим экземпляром и ведется работа везде, где он используется.

Перейдем к типам сервисов
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments37

Аутентификация на основе JSON Web Token в Django и AngularJS: часть вторая

Reading time8 min
Views19K
В первой части мы рассмотрели, что для формирования JSON Web Token необходимы: сериализаторы и представления.

Теперь мы создадим шаблоны и поработаем над сервисами для аутентификации и получения данных.

Bower, менеджер пакетов для web-приложений


Прежде чем перейдем к коду, давайте установим все необходимые зависимости. Для этого мы будем использовать Bower, он является идеальным инструментом для управления зависимостями web-приложений.

Предполагается что у вас уже установлен Node.js. Для установки bower просто выполните следующую команду:
$ npm install -g bower

Примечание: Возможно понадобятся права администратора.
Для того чтобы изменить каталог по умолчанию, в который bower будет устанавливать пакеты, в корне вашего проекта создайте файл с названием “.bowerrc ” и добавьте в него следующие строки:
{
    "directory": "static/bower_components"
}

Мы указали каталог “static”, чтобы эти компоненты были доступны в Django.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments3

Тестируем iOS8 приложения с Xcode 6.1 без Apple Developer Program Membership (Jailbreak) (Обновлено для XCode 6.4)

Reading time3 min
Views25K
В конце мая 2014 года я писал подробную статью как тестировать приложения на iOS7 и Xcode 5.1.1, но не далее как два месяца назад миру был представлен iPhone 6 и iPhone 6 Plus с новой операционной системой iOS 8 и Apple изменила что-то в коде и старый «твик» более не работает. Знаю, что некоторым интересно попробовать написать приложение для iOS, чисто в познавательных целях, но 99USD платить Apple за «любознательность» не хочется. Не отчаивайтесь, не все так страшно, более того, теперь всё гораздо проще — больше не нужно создавать сертификаты и компилировать ldid для отладки.


Читать дальше →
Total votes 40: ↑30 and ↓10+20
Comments16

Meteor. Разрабатываем TODO List

Reading time36 min
Views61K
В данном уроке я не хочу обсуждать, почему метеор убийца веба, тем более я так не считаю, но определенную симпатию к этому фреймворку имею. Поэтому хочу показать с чего можно начать при разработке приложения на нем, какие есть пакеты и вообще, что такое этот метеор.

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

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

И еще одно предупреждение: в данном уроке будут использоваться следующие технологии для непосредственного написания примера:

  • jade — html препроцессор;
  • less — css препроцессор;
  • coffeescript — язык программирования, компилируемый в javascript.

Видео, демонстрирующее приложение, полученное в ходе урока



И кому все еще интересно, добро пожаловать под кат.
Читать дальше →
Total votes 67: ↑59 and ↓8+51
Comments19

ForkLift — продвинутая замена Total Commander для Mac OS

Reading time2 min
Views62K
image

Очень много ребят жалуется на отсутствие замены Total Commander под Mac OS и не знают о существовании файлового менеджера ForkLift, который вполне может заменить Total Commander.

Краткий обзор возможностей:

Поддерживаемые протоколы
image FTP, SFTP, WebDAV, S3, iDisk, SMB, AFP, NIS
Возможность монтировать удаленную файловую систему и работать с ней, как с локальной. При редактировании файлов на удаленной системе в локальном редакторе, изменения сразу применяются без необходимости отдельного подтверждения «загрузить новую версию файла?».

Также существует возможность подмонтировать любую из удаленных файловых систем как локальный диск, таким образом файлы будут доступны из системы как локальные.
Читать дальше →
Total votes 47: ↑33 and ↓14+19
Comments79

Как я работал в Индии веб-разработчиком по контракту

Reading time20 min
Views91K

Предисловие


Здравствуйте, меня зовут Александр Зеленин и я веб-разработчик. В начале 2012 года я получил предложение о работе (nodejs, frontend и всё с этим связанное) в Индии. В целом, задумка мне эта понравилась. Можно набраться опыта (в том числе и языкового), да и отдохнуть в экзотической стране.

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

После прохождения интервью мне выслали контракт на полгода и начали подготовку бумаг для получения визы.
И что же дальше?
Total votes 165: ↑155 and ↓10+145
Comments177

Выразительный JavaScript: Введение

Reading time9 min
Views466K


Перевод книги Marijn Haverbeke "Eloquent JavaScript". Лицензия Creative
Commons attribution-noncommercial license
. Код предоставляется под лицензией MIT.


Содержание



Читать дальше →
Total votes 54: ↑49 and ↓5+44
Comments14

ASP.NET MVC. Урок 0. Вступление

Reading time2 min
Views782K
Я пишу сайты на asp.net mvc. В этих 16 главах я хочу рассказать, как я это делаю. Это некий учебник-справочник всех тех знаний, которые я накопил в течение трех лет.

Почему именно asp.net mvc

ASP.NET MVC я люблю потому что:
  • Это .net. Я знаю .net и С#.
  • Это компилируемый код.
  • Это не ASP.NET WebForms, я работаю с html-кодом.
  • Используется MVC-паттерн.
  • Visual Studio – самое популярное средство разработки, в котором есть IntelliSense.
  • Отличные инструменты отладки.


Читать дальше →
Total votes 290: ↑215 and ↓75+140
Comments67

Инвестирование для чайников

Reading time12 min
Views378K
Финансы для чайниковМногие из читателей хабра неплохо зарабатывают (я надеюсь) и имеют возможность покрывать не только текущие расходы, но и тратить деньги на что-то перспективное. Опять же, многие из нас задумываются — как отложить деньги на будущее, дабы они не «сгорели» со временем (задача минимум) и как заставить деньги делать деньги (задача среднемум средняя). И, снова, многие из нас мечтают, чтобы сбережения росли достаточно быстро, чтобы устроить себе пенсию не в 65 лет, а пораньше. Причем в идеале так, чтобы не надо было тратить все свое время на это, а заниматься любимым делом.

Этим вопросами я заинтересовался года два назад. Как оказалось, задача максимум решаема, а мечта о свободном времяпрепровождении до 60 лет вполне реальна. Более того, на Западе популярен подход «asset allocation», который позволяет тратить на вопрос инвестирования до часа в год и иметь на выходе результаты, сравнимые с профессиональными инвесторами. Причем необходимо всего лишь крепко разобраться в базовой информации и не погружаться в пучины технического и фундаментального анализа.

Как оказалось, этот подход доступен и в нашей стране, в нашей действительности. Результатами исследования я хочу поделиться с вами. Да, пока только исследования… Через 30 лет расскажу о результатах практики.

Сейчас я вижу, что, если бы я об этом задумался десять лет назад, я был бы уже на полпути к своей мечте! Как жаль, что я тогда думал только о компьютерах (ну… не только о них, но о финансах уж точно не думал!)… Впрочем, лучше позже, чем совсем-совсем позже.

P. S. Почему «Сделай сам»? Потому что вы сами можете накопить себе неплохие деньги — вы, а не банки, пенсионный фонд или финансовые компании!
UPD. P. P. S. Мои размышления базируются на статье Сергея Спирина «Портфель лежебоки, или как за 12 лет увеличить капитал в 118 раз». Собственно, от него я и узнал про эту инвестиционную стратегию. Я — IT-шник, а не финансист. Посему за подробностями от эксперта — к нему!
Детали, как водится, под катом!
Total votes 118: ↑105 and ↓13+92
Comments184

Node.js + JQuery Ajax. Загрузка файлов на сервер

Reading time3 min
Views38K

Введение


В данные статье я хочу вам рассказать о моем способе загрузки файлов на сервер Node.js с помощью JQuery Ajax. Да, я понимаю что есть уже и другие решения, например JQuery File Upload, но все таки иногда хочется сделать что-то уже существующее, для того чтобы понять как это все устроено. Данное решение является учебным примером, все замечания по поводу кода или предложения по его улучшению оставляйте в комментариях.

Что будем использовать


  1. Bootstrap
  2. JQuery
  3. Модуль для Node.js Multiparty

Читать дальше →
Total votes 19: ↑9 and ↓10-1
Comments3

Построение полноценного MVC веб-сайта на ExpressJS

Reading time23 min
Views66K
NB: Это материал для тех, кто уже ознакомился с теоретической основой node.js и хочет, как говорится, с места в карьер — поскорей окунуться в разработку с применением этого инструмента. Никакой дедукции, only coding. Если заинтересовало, не стесняемся, проходим под кат.

Читать дальше →
Total votes 3: ↑1 and ↓2-1
Comments0

RESTful API на Yii framework с RBAC и тестами

Reading time19 min
Views29K
Существует множество готовых решений для реализации RESTFul API на Yii framework, но при использовании этих решений в реальных проектах понимаешь что все красиво выглядит только на примерах с собачками и их хозяевами.

Возможно, за время подготовки и написания статьи она немного потеряла актуальность с выходом Yii2 со встроенным фреймворком для создания RESTful API. Но статья по прежнему будет полезна для тех, кто пока не знаком с Yii2, или для тех, кому необходимо быстро и просто реализовать полноценное API для уже существующего приложения.

Для начала приведу список некоторых возможностей, которых мне очень не хватало для полноценной работой с серверным API при использовании существующих расширений:

  1. Одна из первых проблем с которой я столкнулся — сохранение различных сущностей в одной таблице. Для получения таких записей уже не достаточно просто указать имя модели как это предлагается, например тут. Один из примеров такого механизма — таблица AuthItems, которая используется фреймворком в механизме RBAC (если кто-то не знаком с ним — есть замечательная статья на эту тему). В ней содержатся роли, операции и задачи которые определяются флагом type, и для работы с этими сущностями через API мне хотелось использовать url не такого типа:
    GET: /api/authitems/?type=0 - получение списка операций
    GET: /api/authitems/?type=1 - получение списка задач
    GET: /api/authitems/?type=2 - получение списка ролей

    а такого:
    GET: /api/operations - получение списка операций
    GET: /api/tasks - получение списка задач
    GET: /api/roles - получение списка ролей

    Согласитесь, второй вариант выглядит очевиднее и понятнее, тем более для человека не знакомого с фрейморком и устройством RBAC в нем.
  2. Вторая немаловажная возможность — механизм поиска и фильтрации данных, с возможностью задавать условия и комбинировать правила. Например, мне хотелось иметь возможность выполнить аналог такого запроса:
    SELECT * FROM users WHERE (age>25 AND first_name LIKE '%alex%') OR (last_name='shepard');
    

  3. Порой не хватает возможности создания, обновления, удаления коллекций. Т.е. изменение n-ого количества записей одним запросом опять же используя поиск и фильтрацию. Например, зачастую требуется удалить или обновить все записи, попадающие под какое-либо условие, а использовать отдельные запросы слишком накладно.
  4. Еще одним важным моментом была возможность получать связанные данные. Например: получить данные роли вместе со всеми её задачами и операциями.
  5. Конечно невозможно хоть сколько-нибудь комфортно работать с API не имея возможности ограничить количество получаемых записей (limit), сместить начало выборки (offset), и указать порядок сортировки записей (order by). Так же не плохо бы иметь возможность группировки (group by).
  6. Важно иметь возможность для каждой из операций проверять права пользователя (метод checkAccess все в том же RBAC).
  7. Ну и наконец, все это дело нужно как-то тестировать.

В результате анализа примерно такого списка «хотелок» и появился на свет мой вариант реализации API на этом замечательном фреймворке!
Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments18
1

Information

Rating
Does not participate
Location
Омск, Омская обл., Россия
Date of birth
Registered
Activity