Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Охота на мифический MVC. Обзор, возвращение к первоисточникам и про то, как анализировать и выводить шаблоны самому

Время на прочтение24 мин
Количество просмотров143K
— Не понимаю, почему люди так восхищаются этим Карузо? Косноязычен, гугнив, поёт — ничего не разберешь!
— А вы слышали, как поёт Карузо?
— Да, мне тут кое-что из его репертуара Рабинович напел по телефону.

Детектив по материалам IT. Часть первая


Я осознаю, что писать очередную статью на тему Модель-Вид-Контроллер это глупо и вредно для «кармы». Однако с этим «паттерном» у меня слишком личные отношения – проваленный проект, полгода жизни и тяжелой работы «в корзину».


Проект мы переписали, уже без MVC, просто руководствуясь принципами – код перестал быть похож на клубок спагетти и сократился наполовину (об этом позже, в обещанной статье про то, как мы применяли «принципы» в своем проекте). Но хотелось понять, что же мы сделали не так, в чем была ошибка? И в течении долгого времени изучалось все, что содержало аббревиатуру MVC. До тех пор пока не встретились исходные работы от создателя – Трюгве Реенскауга…


И тогда все встало на свои места. Оказалось что фактически на основе принципов мы пере-изобретали «original MVC». А то, что зачастую преподносится как MVC, не имеет к нему никакого отношения… впрочем также как и к хорошей архитектуре. И судя по тому сколько людей пишет о несостоятельности «классического MVC», спорит о нем и изобретает его всевозможные модификации, не одни мы столкнулись с этой проблемой.


Более 30 лет собранные в MVC идеи и решения остаются наиболее значимыми для разработки пользовательских интерфейсов. Но как ни странно, несмотря на существующую путаницу и обилие противоречивых трактовок, разработчики продолжают довольствоваться информацией «из вторых рук», черпая знания о MVC из википедии, небольших статей в интернете и фреймворков для разработки веб-приложений. Самые «продвинутые» читают Мартина Фаулера. И почему-то почти никто не обращается к первоисточникам. Вот этот пробел и хотелось бы заполнить. И заодно развеять некоторые мифы.


Читать дальше →
Всего голосов 73: ↑71 и ↓2+69
Комментарии387

Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать

Время на прочтение20 мин
Количество просмотров315K
Идеальная вёрсткаВы PM. Как узнать – готова ли вёрстка к реальному использованию?
Вы заказчик. Как убедиться, что работа выполнена качественно?
Как оценить качество вёрстки?

Когда я стал тим-лидом, а позже PM, передо мной стала задача проверять вёрстку наших проектов. Нужно было выработать формальные, легкопроверяемые критерии, соответствие кода которым, должно было давать некую гарантию, что не будет факапов и ни клиент, ни программеры не сказажут потом “WTF?”.

Клиенту неважно насколько красив ваш код, но ему важен результат. Качественный код нужен фирме, т.к. он надёжней и в будущем его будет легче поддерживать.

Требования должны были быть такие, что соблюсти их легче, создавая качественную вёрстку, а не говнокод. Я составлял такой чек-лист в течении полутора лет. За последние полгода в него не добавилось ничего. Значит самое главное учтено.

Итак что же это за список?

Краткая версия теперь доступна на html5checklist.com (github), где можно вносить pull-request'ы.

История обновлений:
  • 2015/08/11: Актуализировал рекомендации по оптимизации скорости загрузки. Добавил требование поддержки Retina. Дополнил «19. Мелочи» требованием что изображения должны масштабироваться в зависимости от размера окна.
  • 2015/08/10: актуализирован список исключений для CSSLint
  • 2015/07/29: актуализирован пункт №13 «плохо»/«хорошо»
  • 2015/04/08: добавлено требование использования препроцессоров и рекомендация использования систем сборки
  • 2013/04/25: добавлены анализаторами качества кода: CSSLint и JSHint, указан сайт подбора css font stack (спасибо @fliptheweb), мелкие уточнения (работу интерактивных элементов страницы, что не пропадает фон на высоких разрешениях, не должно быть пустых презентационных блоков, при проверках контента — пробовать удалять заголовки, менять местами блоки)
  • 2013/04/24: добавил пункт об минимизации каскада (БЭМ-техники, MCSS, SMACSS), необходимости вписывания в экран моб. устройства, заменил ссылку на проверочный текст отображения стандартного html на код с normalize.css, поправил пример где в рекомендации встречался длинный каскад, упомянул про Opera на Presto и новый уровень семантики — в именах классов BEM.
  • 2012/04/12: отсортировал пункты проверки в порядке важности, выделил главные, дополнил статью подробностями
  • 2011/12/07: дополнил согласно доклада на WSD Минск'2011.
  • 2011/07/19: добавлено про повышение надёжности вёрстки благодаря html5-тэгам, про необходимость favicon/apple-touch-icon, отсутствие багов при ресайзе textarea
  • 2011/06/15: добавил пояснения какие ошибки валидации допустимы, рассказал про отсутствие официальной кнопки «HTML5 Valid» и про официальное лого HTML5 на сайте.


Далее с примерами - как проверить html, даже если вы ничего не понимаете в вёрстке.
Всего голосов 335: ↑318 и ↓17+301
Комментарии244

Быстрое знакомство с Docker-контейнерами для Django-разработчика

Время на прочтение5 мин
Количество просмотров65K


Разработка такого проекта как кешбек-сервис подразумевает использование различных сервисов, нетипичных для обычного ноутбука, даже если это ноутбук разработчика. Postgresql, Redis, Celery и так далее. Желание создать комфортную среду разработки и тестирования привело нас к необходимости использование какой-то системы виртуализации/изоляции. Как вариант — некоторое время использовался Vagrant, но это всё-таки ovrerhead и наши поиски оптимального способа привели, на данный момент, к Docker.

Docker — платформа для запуска приложений в изолированных контейнерах. Использование контейнеров в Linux позволяет программному обеспечение быть изолированным от базовой системы. В отличии от Virtualbox, исключаются системные издержки (overhead), необходимые для виртуализации оборудования. Docker может помочь в разработке и развертывании веб-приложений и сервисов. Давайте посмотрим, как это происходит.
Читать дальше →
Всего голосов 31: ↑26 и ↓5+21
Комментарии19

Выразительный JavaScript: Node.js

Время на прочтение22 мин
Количество просмотров148K

Содержание




Ученик спросил: «Программисты встарь использовали только простые компьютеры и программировали без языков, но они делали прекрасные программы. Почему мы используем сложные компьютеры и языки программирования?». Фу-Тзу ответил: «Строители встарь использовали только палки и глину, но они делали прекрасные хижины».

Мастер Юан-Ма, «Книга программирования»


На текущий момент вы учили язык JavaScript и использовали его в единственном окружении: в браузере. В этой и следующей главе мы кратко представим вам Node.js, программу, которая позволяет применять навыки JavaScript вне браузера. С ней вы можете написать всё, от утилит командной строки до динамических HTTP серверов.

Эти главы посвящены обучению важным идеям, составляющим Node.js и предназначены для передачи вам достаточного количества информации, чтобы вы могли писать полезные программы в этой среде. Они не пытаются быть всеобъемлющими справочниками по Node.

Код из предыдущих глав вы могли писать и исполнять прямо в браузере, но код из этой главы написан для Node и в браузере работать не будет.

Если вы хотите сразу запускать код из этой главы, начните с установки Node с сайта nodejs.org для вашей операционки. Также на этом сайте вы найдёте документацию по Node и его встроенным модулям.
Читать дальше →
Всего голосов 45: ↑42 и ↓3+39
Комментарии8

Выразительный JavaScript: Формы и поля форм

Время на прочтение17 мин
Количество просмотров198K

Содержание




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

Мефистофель, в «Фаусте» Гёте


Формы были кратко представлены в предыдущей главе в качестве способа передачи информации, введённой пользователем, через HTTP. Они были разработаны в вебе до появления JavaScript, с тем расчётом, что взаимодействие с сервером происходит при переходе на другую страницу.

Но их элементы являются частями DOM, как и остальные части страницы, а элементы DOM, представляющие поля формы, поддерживают несколько свойств и событий, которых нет у других элементов. Это делает возможным просматривать и управлять полями ввода из программ JavaScript и добавлять функциональности к классическим формам или использовать формы и поля как основу для построения приложения.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии13

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

Время на прочтение9 мин
Количество просмотров467K


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


Содержание



Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии14

Как IT-фрилансеру стать предпринимателем. Часть 3

Время на прочтение4 мин
Количество просмотров36K
Всем привет! Мы продолжаем серию постов о том, как IT-фрилансеру стать предпринимателем. Вы уже знаете, почему ИП лучше, чем ООО и как зарегистрировать ИП самостоятельно. Сегодня мы расскажем, что ждёт предпринимателя после регистрации.



Краткий путеводитель для начинающих предпринимателей от «Я люблю ИП»
Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии46

ECMAScript 6 Promises

Время на прочтение5 мин
Количество просмотров52K
На Хабре уже встречались статьи о замечательной технологии Promises, которая в будущем станет частью стандарта ECMAScript 6, однако, в этих статьях не было подробного описания, почему же они так полезны и в чем таки их преимущества. Дабы заполнить этот пробел, я решил написать эту статью.
Читать дальше →
Всего голосов 37: ↑28 и ↓9+19
Комментарии47

Визы для стартапов: как открыть собственное дело за рубежом (часть 1)

Время на прочтение4 мин
Количество просмотров70K
image

Как создать бизнес почти «из ничего» и стать хозяином собственной жизни? Ответ: создать стартап. Сегодня многие страны предлагают для предпринимателей супервыгодные условия для начала своего дела. Например, в Чили не нужно даже самим искать деньги на стартап — при наличии хорошей идеи их выдает правительство страны. А в Великобритании и Канаде работают специальные фонды, готовые профинансировать начинающую компанию.

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

Посмотрим, какие условия иммиграции существуют для основателей стартапов в разных странах.
Читать дальше →
Всего голосов 74: ↑62 и ↓12+50
Комментарии53

Pizza Hut представила концепт сенсорного стола для заказа пиццы (видео)

Время на прочтение1 мин
Количество просмотров45K

Заказ пиццы в пиццерии — довольно рутинный процесс. Нужно изучить меню, договориться с друзьями, какую же пиццу взять. Ах да, еще нужно дождаться официанта, чтобы он принял у вас заказ. Или уже не нужно?
В официальном YouTube-аккаунте известной сети пиццерий Pizza Hut появился видеоролик, демонстрирующий сенсорный стол для заказа пиццы. Покупатель сможет сам выбрать размер пиццы, начинку и все остальное. Нужно просто водить пальцами по столу, никаких медлительных официантов, никаких очередей (разве что к самому этому столу). Реализация проекта выполняется совместно с Chaotic Moon Studios. Пока не ясно, когда такие столы появятся в стоящей рядом закусочной, но технология уже существующая. Так что в ближайшее время, придя в кафе/пиццерию, вполне можно будет наткнуться на нечто подобное. А ведь помимо удобства, такой стол — это отличный маркетинговый ход! Вы пойдете в такую пиццерию? Я бы сходил, например.

Под катом видео.
Читать дальше →
Всего голосов 37: ↑29 и ↓8+21
Комментарии52

Мой опыт: Российские интернет банки и карты

Время на прочтение5 мин
Количество просмотров250K
Привет всем! Если вы фрилансер, то наверняка имели дело с банковскими картами. Сейчас на Российском рынке огромное предложение карт, начиная от банковских премиальных, заканчивая скидочными и бонусными от кафе до авиакомпаний.
Сразу хочу сказать, что пост никаким образом не является рекламным. Тут только мое мнение и мой опыт по отношению к Российским банкам и их картам. В обзоре я использовал только те банки, с которыми работал лично.


Читать дальше →
Всего голосов 131: ↑85 и ↓46+39
Комментарии437

Стала известна дата начала продаж LeapMotion

Время на прочтение1 мин
Количество просмотров21K


На хабре уже писалось про удивительный контроллер LeapMotion, а некоторым счастливчикам даже удалось его пощупать.
И вот, наконец, стала известная дата начала продаж этого устройства. Это 13 мая этого года. Известно так же, что продукт будет доступен в Best Buy c 19 мая по цене всего 80$.
Всего голосов 32: ↑23 и ↓9+14
Комментарии10

Как обмануть Корпорацию Добра или покупаем Nexus 7 в России без гуглолотереи

Время на прочтение4 мин
Количество просмотров260K
В недавней статье на Хабре уже шла речь о том, как закупаться на Google Play в разделе Devices прямо из нашего захолустья. Тема бесспорно интересная: Nexus 7 пока в России и близлежащих странах вообще не водится, а Galaxy Nexus, скорее всего, просто обойдется вам значительно дороже, если, конечно, вы не живете в Москве или Питере. Проблема только в том, что рецепт оказался несколько нестабильный: лично меня Самая Добрая Корпорация небезосновательно заподозрила в подтасовке личных данных, а судя по комментариям – я такой оказался далеко не один.

Неделя мучений и попыток обмануть Google Wallet привела-таки к положительному результату в виде возможности покупать что угодно и где угодно на Google Play, более того, решение, строго говоря, лежало на поверхности и никаких сложных действий не требовало.

Под катом новый рецепт и совсем чуть-чуть скриншотов.
Читать дальше →
Всего голосов 99: ↑91 и ↓8+83
Комментарии110

Обзор PocketBook Touch

Время на прочтение5 мин
Количество просмотров29K
По результатам тестов авторитетного европейского журнала ComputerBild, последняя модель марки PocketBook – Touch — признана лучшим ридером.
Устройства оценивались в пяти категориях: качество экрана, функционал, технические характеристики, дополнительные функции и сервисное обслуживание. С опережением в каждой из категорий победителем стала модель PocketBook Touch.

image

Что же из себя представляет данный ридер и чем он так хорош?

Читать дальше →
Всего голосов 17: ↑12 и ↓5+7
Комментарии87

Зарплаты IT-специалистов в США

Время на прочтение1 мин
Количество просмотров70K


Mashable опубликовал любопытную инфографику, созданную сервисом по поиску работы OnwardSearch, в которой проанализированы и выстроены по рейтингу зарплаты IT-специалистов в США.

Всего в рейтинге 10 позиций, которые были сформированы согласно наиболее часто размещаемым работодателями вакансий. Беглый анализ показывает, что наиболее высокие шансы найти работу в США у специалистов, работающих в сфере интернета — таких позиций, явно связанных с web, сразу три: Web developer, Web designer, Front end developer. Работающие в этих областях получают в среднем соответственно 82 000$, 62 000$ и 85 000$.

Наиболее высокая зарплата на позиции, которая называется Information arhitect — её обладатель зарабатывает 99 000$.

Любопытно, что графические дизайнеры стоят в конце топ-десятки вакансий с зарплатой 47 000$, а вот копирайтеры (copywriter) их опережают довольно значительно — он получают 56 000 $.

Посмотреть инфографику и почувствовать разницу
Всего голосов 69: ↑53 и ↓16+37
Комментарии110

Duracell и Powermat показали новую зарядную систему

Время на прочтение1 мин
Количество просмотров7.5K


Не так давно Duracell and Powermat сформировали альянс Duracell Powermat, цель которого — развитие беспроводных зарядных устройств (как сделать такое устройство самому — здесь). Результаты работы этого альянса уже видны — это новая зарядная система, которая сочетает несколько полезных для покупателя продуктов вместе.

Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии45

Как стать еще мобильнее, или что делать, если рядом нет розетки с 220V?

Время на прочтение4 мин
Количество просмотров43K
image Думаю, многим из нас знакома такая ситуация, когда вдруг обнаруживаешь, что твой телефон или интернет-планшет вот-вот разрядится, причем, происходит это, как назло, в самый неподходящий для этого момент.
Что же делать, если необходимо подзарядить батарею, например, сидя на семинаре вдали от розетки, на пикнике вдали от бортовой сети автомобиля, там, где нет возможности воткуть привычную зарядку в 220V?

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

Читать далее
Всего голосов 91: ↑75 и ↓16+59
Комментарии88

Опыт заказа в китайских интернет-магазинах

Время на прочтение5 мин
Количество просмотров578K
В данной статье хотелось бы поделиться с читателями своим личным опытом о китайских интернет-магазинах, в которых мне (или моим друзьям) приходилось делать покупки. Речь пойдет именно про электронный сегмент товаров. Сразу перейду к сути, и приведу обзоры этих самых магазинов с заключительной оценкой:
Читать дальше →
Всего голосов 169: ↑155 и ↓14+141
Комментарии106

Перемещение курсора в Terminal

Время на прочтение2 мин
Количество просмотров11K
В моем случае, Terminal.app является одним из самых активно используемых приложений в операционной системе. И первое, что кажется неудобным, это реакция на привычные комбинации клавиш, касающиеся перемещения курсора. Поясню на примере графических приложений. Вам наверняка часто приходится работать с редактированием текста, и применять клавиатурные комбинации с использованием стрелок и системных клавиш, для того, что бы передвинуть курсор к началу слова или строки. Так вот вынужден вас разочаровать, но в терминале эти фокусы работать не будут. До тех пор, пока мы не сунемся туда с напильником. За дело.
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии4

Работа для программиста в США: 5 простых шагов

Время на прочтение5 мин
Количество просмотров291K
image Статья про то, что делать тем, кто хочет переехать работать в США. Я предполагаю инженерные позиции, на которые проще всего получить визы, но, возможно, статья окажется полезна и другим специалистам.

Мой опыт несколько отличается от нижеописанного (я попала на работу в США после стажировки). Но за 4 года в США пообщалась с людьми, которые попали сюда разными путями и набрала кое-какой опыт. Так что если бы я очень хотела найти работу в США сегодня, то я бы действовала примерно так, как описано ниже.

Заранее извиняюсь, если мой тон кому-то покажется наставническим — я не имею амбиций учить других жизни, просто иногда у меня получается такой стиль.
Читать дальше →
Всего голосов 166: ↑152 и ↓14+138
Комментарии138
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность