Pull to refresh
0
0
ArtemS @ArtemS

User

Send message

Action-Domain-Responder — доработка MVC под задачи веба

Reading time16 min
Views27K

Цель


Разделить взаимодействия пользовательского интерфейса между веб-клиентом и веб-приложением на три чётко определённые роли.

ADR

Предпосылки


Термин MVC испытывает некоторое семантическое размытие своего первоначального значения, особенно в контексте веба (см. видео Стефана Прибша для более подробного рассмотрения вопроса). В качестве средства устранения этого размытия предлагаю вашему вниманию описание паттерна Action-Domain-Responder, являющегося доработкой концепции MVC под нужды решения специфичных для веба задач.

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

Еще одной вскрывшейся проблемой является тот факт, что часто мы рассматриваем Представление (View) как шаблон (template), хотя в контексте веба, вероятно, более уместно было бы говорить о том, что Представлением является HTTP-ответ. Исходя из вышесказанного, я считаю, что ADR способен предоставить лучшее, чем MVC, разделение концепций для веб-приложений.
Читать дальше →

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

Reading time2 min
Views251K

Господа! Я рад сообщить, что наконец-то все желающие могут загрузить бесплатный учебник на более чем 1600 страниц, над переводом которого работало более полусотни человек из ведущих университетов, институтов и компаний России, Украины, США и Великобритании. Это был реально народный проект и пример международной кооперации.

Учебник Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», второе издание, 2012, сводит вместе миры программного обеспечения и аппаратуры, являясь одновременно введением и в разработку микросхем, и в низкоуровневое программирование для студентов младших курсов. Этот учебник превосходит более ранний вводный учебник «Архитектура компьютера и проектирование компьютерных систем» от Дэвида Паттерсона и Джона Хеннесси, причем соавтор предыдущего учебника Дэвид Паттерсон сам рекомендовал учебник от Харрисов как более продвинутый. Следуя новому учебнику, студенты строят реализацию подмножества архитектуры MIPS, используя платы с ПЛИС / FPGA, после чего сравнивают эту реализацию с индустриальными микроконтроллерами Microchip PIC32. Таким образом вводится вместе схемотехника, языки описания аппаратуры Verilog и VHDL, архитектура компьютера, микроархитектура (организация процессорного конвейера) и программирование на ассемблере — в общем все, что находится между физикой и высокоуровневым программированием.

Как загрузить? К сожалению, не одним кликом. Сначало надо зарегистрироваться в пользовательском коммьюнити Imagination Technologies, потом зарегистрироваться в образовательных программах на том же сайте, после чего наконец скачать:
Читать дальше →

Пример векторной реализации нейронной сети с помощью Python

Reading time14 min
Views50K
В статье речь пойдет о построение нейронных сетей (с регуляризацией) с вычислениями преимущественно векторным способом на Python. Статья приближена к материалам курса Machine learning by Andrew Ng для более быстрого восприятия, но если вы курс не проходили ничего страшного, ничего специфичного не предвидится. Если вы всегда хотели построить свою нейронную сеть с преферансом и барышням векторами и регуляризацией, но что то вас удерживало, то сейчас самое время.

Данная статья нацелена на практическую реализацию нейронных сетей, и предполагается что читатель знаком с теорией (поэтому она будет опущена).
Читать дальше →

Уменьшаем количество ошибок с помощью чек-листа Code Review

Reading time3 min
Views31K
В нашей статье об эффективных ревью кода мы рекомендовали использовать чеклист. Чеклисты (контрольные списки) — это великая вещь в ревью: они гарантируют, что ревью действительно прошло через вашу команду. Также они способствуют выявлению и решению общих трудностей.

Исследование, проведенное Software Engineering Institute, показывает, что программисты делают 15-20 распространенных ошибок. Добавив такие ошибки в чеклист, вы можете быть уверены, что заметите их в момент появления и поможете от них избавиться надолго.

Чтобы вам было от чего отталкиваться, вот вам список типичных пунктов:
Читать дальше →

Эффективные ревью кода: 9 советов от исправившегося скептика

Reading time4 min
Views20K
Я знал теорию. Ревью кода помогает:
  • Находить баги
  • Обеспечивать читаемость и поддерживаемость кода
  • Распространять знания кода на всю команду
  • Быстрее входить в работу новым членам команды
  • Показывать всем новые подходы к решению задач

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

Мины в Haskell и Gloss: быстрое прототипирование интерактивной графики

Reading time14 min
Views13K
На Хабрахабре есть уже немало хороших статей по хаскелю, но по большей части это всяческие введения в ФП, разъяснения каких-то теоретических штук (вроде монад, лямбда-исчисления или семейств типов) и совсем немного практических примеров. Ни в коем случае не умаляя их полезности, попробую всё-таки сместить дисбаланс, внести свою лепту в неблагодарное дело популяризации функциональщины и ещё раз показать, что язык пригоден не только для написания факториалов и неэффективных быстрых сортировок в две строчки, но и для вполне практичных вещей вроде быстрого прототипирования.

Статья постарается быть относительно real-world, но при этом не утомлять читателя объёмом или экзотическими предметными областями. «Графика и игры в обучении — это всегда sexy», как завещал великий В. С. Луговский, поэтому я набросаю простую игру, всенародно любимый «Сапёр». Разработка будет вестись «сверху вниз» — это удручающе малораспространённая, но заслуживающая пристального внимания (как и сам хаскель) методология, которая когда-то давно встретилась в отличной статье о шашках в «Практике функционального программирования», и с тех пор запала в душу.
Читать дальше →

Категории Клейсли

Reading time9 min
Views27K

Композиция логирования


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

Свет и цвет: основы основ

Reading time10 min
Views407K
Piccy.info - Free Image Hosting
Мы часто говорим о таком понятии как свет, источниках освещения, цвете изображений и объектов, но не совсем хорошо себе представляем, что такое свет и что такое цвет. Пора разобраться с этими вопросами и перейти от представления к понимаю.
Читать дальше →

Самый лучший способ обучения английскому для холостых мужчин

Reading time2 min
Views142K
imageКогда я неожиданно стал фрилансером, жизнь меня поставила перед фактом, что все мои заказчики англоговорящие и с ними придется переписываться, а то общаться в скайпе голосом. За всю свою жизнь я перепробовал наверно все возможные методы изучения английского.
1) Изучал его в школе и универе (на самом деле досталось куча неправильных вещей не имеющих реального отношения к текущему английскому, от которых сложно отучиться).
2) Изучал по курсам Ешко.
3) Читал всевозможные учебники.
4) Читал и зубрил слова со словаря.
5) Тренировался с разговорниками.
6) Пытался общаться с носителями языка в аськах, скайпах и прочем.
7) Ходил в протестантскую церковь в которых были бесплатные уроки с носителями языка, а потом проповедь.
8) Мучался с lingvaleo и аналогами.
9) Зубрил слова с карточками.
10) Пробовал читать книги на английском.
11) Наверно какие то ещё методы о которых я не помню, кто их знает пишите в комментах.
Читать дальше →

Нейробиология и искусственный интеллект: часть третья – представление данных и память

Reading time6 min
Views74K
Продолжение.

Глава 1: Нейробиология и искусственный интеллект: часть первая — ликбез.
Глава 1.5: Нейробиология и искусственный интеллект: часть полуторная – новости от Blue Brain Project.
Глава 2: Нейробиология и искусственный интеллект: часть вторая – интеллект и представление информации в мозгу.


Рис. 1

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

Это дает повод спекулировать об альтернативных теориях сознания, в которых берут какой-нибудь малоизученный эффект и объявляют его панацеей. Одна из таких теорий была выдвинута Р. Пенроузом и С. Хамероффом – квантовая теория сознания, основанная на теоретических предпосылках к квантовому взаимодействию тубулиновых микротрубочек, составляющих цитоскелет нейронов. Если будут желающие, могу обсудить эту теорию в отдельной главе, а пока вернемся к более проверенным теориям.

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

25 полезных шорткатов для Photoshop

Reading time3 min
Views190K
Здравствуй, дорогой хабрадруг! В этой статье приводятся 25 самых полезных сочетаний клавиш (шорткатов) в Photoshop, которые вы можете использовать, для того чтобы ускорить выполнение вашей работы. Некоторые из них редко упоминаются, некоторые применяются довольно часто, а некоторые вообще доступны только в Photoshop CS5. Я надеюсь, что каждый из вас найдет новые и полезные шорткаты в этой статье. Итак, давайте же начнем!


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

Что делать, если вам грозят 38 млрд. (или меньше) за нарушение авторских прав

Reading time5 min
Views11K
38 млрд. рублей! Этой суммы вполне бы хватило для закрытия внешнего долга — ну, например Албании. Оказалось — это ущерб, нанесенный известным отечественным и зарубежным компаниям.
Сумма фантастическая, особенно для супружеской пары с фамилией отличное от «Абрамович». Хочу заметить, что если все и далее пойдет по строгой букве закона, с буквальным трактованием и отсутствием вопросов суда к обвинению, то сумма может вырасти.
Читать дальше →

В гостях у Одноклассников

Reading time9 min
Views3.2K
Недавно удалось посетить рижский офис компании «Одноклассники» – про сам офис я расскажу чуть позже, а в этом посте хочу пересказать беседы с рядом сотрудников компании. Начну с Элины Пархоменко, она — директор по развитию продукта.

image

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

Фильмы IT-тематики

Reading time2 min
Views15K
imageВ свое время, в 1995-ом году, на меня произвел впечатление фильм «Хакеры». Можно
сказать, он стал мотиватором моей дальнейшей ИТ-карьеры. Далеко не эталон киноискусства, однако
стремление стать похожим на героев фильма, продолжилось в самообразовании. Далее первый выклянченный компьютер, первые строчки кода, начало проб и ошибок. Когда уже были написаны эти самые «хэлоу-ворды», «калькуляторы», затем испробованы несколько *nix'ов — на руки попалась болванка с «Antitrust». В одноголосном переводе и гиблом качестве. К слову, это не помешало, пересмотреть фильм пару десятков раз. Что послужило более зрелому стремлению, чем быть всемогущим кул-хакером. Под катом, перечислю увиденные мной фильмы IT-тематики, с кратким описанием. В основном из двухтысячных. Неувиденное или забытое, будем добавлять.

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

Обзор китайской bluetooth-гарнитуры «NOKIA» BH-503

Reading time6 min
Views60K


ВСТУПЛЕНИЕ


Я люблю слушать музыку и основным плеером для меня служит смартфон на андройде, в комплекте с которым поставлялась довольно качественная гарнитура с «затычками». Но вот наличие провода и отсутствие карманов (особенно летом) в верхней части моего гардероба несколько раздражало. Долгое время я никак не мог собраться с духом и купить что-то беспроводное для прослушивания музыки и ответа на звонки, но постоянные неудобства взяли верх над ленью и я направился на dealextreme.com в поисках недорогой и качественной стерео bluetooth-гарнитуры.

Прямо скажем изобилия в этом товарном сегменте не наблюдалось. Я сосредоточился на поиске тех товаров, у которых есть отзывы покупателей. Выбирать пришлось между изящными BH-505, похожими на них S9-HD и несколько громоздкими BH-503. Почитав обзоры я понял, что либо я пожертвую легкостью и изяществом гарнитуры, либо её потребительскими качествами. Смирившись с тем, что габариты и вес гарнитуры будут большими, чем мне хотелось бы, я выбрал BH-503. Оплатив покупку пэйпелом, всего с меня взяли 784 рубля, я стал ждать заветную посылку. Это не первый мой заказ на дилэкстриме и, надо сказать, в этот раз посылка дошла довольно быстро — всего за 3 недели.

О самой гарнитуре и о моих впечатлениях после месяца эксплуатации и пойдёт рассказ. Как обычно десяток фоток.
Читать дальше →

Видео всех лекций с «Курсов информационных технологий» от «Яндекса»

Reading time1 min
Views31K
Для тех, кто не смог посетить Курсы информационных технологий, видеоролики всех лекций выложены в свободный доступ. Это лекции по полтора-два часа на базовые темы: операционные системы; архитектура ЭВМ; устройство GNU/Linux; системы хранения данных; файловые системы; сети и протоколы; виртуализация; безопасность.
Читать дальше →

О производных

Reading time3 min
Views36K

Когда-то в школе я не понимал производных. Не подумайте, что я был совсем уж дураком — я знал определение, умел их брать (в рамках простеньких школьных примеров) и оценки по математике имел неплохие. Но вот смысл этого понятия от меня ускользал. Я понимал насколько важен график некоторой функции — по нему легком можно увидеть зависимость функции от аргумента. Глянул в какую-нибудь точку — и сразу ясно положение дел в данном конкретном месте. А что мне с производной? Ну, знаю я "предел отношения приращения функции к приращению ее аргумента при стремлении приращения аргумента к нулю, если таковой предел существует" — и что? В общем, не понимал я это дело. И не любил.
И только значительно позже, уже в ВУЗе, когда оказалось, что ни одна мало-мальски важная задача по физике, электротехнике, системам автоматического управления, мат.анализу и многим другим предметам без производных не решается — я понял, какая это важная вещь — знание не только текущего положения дел, но и динамики их изменения. Казалось бы, и что статья с таким началом может делать в этом блоге?
Читать дальше →

Тысяча чертей! Потребитель? Защищайтесь!

Reading time5 min
Views16K
Так уж сложилось, что законодательство РФ в большинстве своем далеко от совершенства. Противоречит само себе, множественно трактуется и вообще сложновато для восприятия.
Но есть луч света в темном царстве!
Закон о защите прав потребителя. Замечательная штука, поверьте. При прокачанном скиле использования данного закона можно стать настоящим потреб. террористом. Это, кстати, полуофициальный термин — так называют людей, намеренно злоупотребляющих широкими возможностями, которые предоставляются вышеупомянутым законом.
Итак! На что вы имеете право!
По просьбе NermaN я попробую составить мануал, как и что.
Читать дальше →

Разработка привлекательных реалистичных пользовательских интерфейсов

Reading time4 min
Views15K
Cекрет разработки привлекательных интерфейсов заключается в реализме. Ваша задача — придать плоским элементам объём, используя свойства реальных объектов, вроде неровностей и шероховатостей, бликов и теней, различных текстур поверхностей. В идеале они должны выглядеть как предметы на вашем столе. Создавая классный интерфейс, в первую очередь нужно думать не «как», а «почему».
Читать дальше →

Как достичь профессионального вида с помощью цвета

Reading time9 min
Views11K
image

Что заставляет дизайн выглядеть скоординированным, спланированным и профессиональным? Ответ: 'цвет'.

Далеко не каждый проект нуждается в использовании мягкого корпоративного синего цвета для того, чтобы выглядеть профессионально. Планирование цвета означает создание структуры, которая бы описывала, какие использовать цвета и как их использовать. Цвет — самый неподдающийся элемент дизайна. «Хороший» цвет жестко связан с такими неуловимыми вещами как личный вкус и интуиция, и, в то же время, с технической позиции с калибровкой монитора и контрастом.

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

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

Information

Rating
Does not participate
Location
Россия
Works in
Date of birth
Registered
Activity