Pull to refresh
0
0
Narek Mamikonyan @manar007

User

Send message

Интервью с Элоном Маском. Часть 1 — о том, как он хотел стать физиком, но стал предпринимателем

Reading time4 min
Views123K
imageЭлон Маск, основатель и сооснователь таких компаний как PayPal, SpaceX, Tesla Motors, изучал физику в Пенсильванском университете. В первой части интервью, которое Маск дал Элене Левин, колумнистке издания Американского физического общества APT News, он рассказывает о том, как он использует мышление, основанное на принципах, какие преимущества ему дало изучение физики, и о том, почему он с гордостью называет себя нердом.

Левин: Недавно в одном интервью вы посоветовали людям, которые хотят заниматься инновационным бизнесом, «изучать физику и учиться думать, руководствуясь принципами, а не аналогиями». Можете подробнее рассказать, что вы имели в виду?

Маск: Физики были вынуждены разработать способ мышления, который позволяет понимать контринтуитивные элементы реальности. Вещи вроде квантовой физики не слишком интуитивны, и чтобы продвигаться в их изучении физики создали методику мышления, которая позволяет получать правильные ответы, даже если они совершенно неочевидны. А это требует огромного умственного напряжения. В повседневной жизни нельзя всё время руководствоваться принципами, это потребует слишком большого расхода умственной энергии. Так что большую часть жизни приходится действовать по аналогии, попросту копируя поведение других людей с минимальными вариациями. Но если вы пытаетесь стать первооткрывателем, изобрести что-то действительно новое, то вам придется перейти к мышлению, основанному на принципах, выявить самые фундаментальные истины в вашей отрасли, и выводить свою мысль из них. Это требует напрячь голову, и я могу привести пару примеров того, как это помогает в ракетостроении.
Читать дальше →
Total votes 102: ↑97 and ↓5+92
Comments17

Учимся проектировать на основе предметной области (DDD: Domain Driven Design)

Reading time8 min
Views220K

1. Введение



В данной статье я хотел бы рассказать об этих трёх буквах, постоянно находящихся на слуху, но для многих являющихся тайной за семью печатями, а так же привести ряд ресурсов, с которыми неплохо было бы познакомиться при желании продолжить развитие в проектировании на основе предметной области (DDD: Domain Driven Design).


Читать дальше →
Total votes 66: ↑54 and ↓12+42
Comments25

Лучшие практики AngularJS

Reading time5 min
Views93K
По мотивам этой трансляции.

Вместо предисловия скажу, что есть такой сайт yeoman.io, где собраны наиболее популярные технологии, автоматизирующие разработку фронтенда (сборку, параметризацию CSS и проч.). Обратите на него внимание в начале работы над проектом.
Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments11

Понимание областей видимости или Scope в AngularJS

Reading time10 min
Views78K
В Ангуляре, дочерняя область видимости обычно прототипически наследуется от родительской. Единственным исключением является директива, в которой используется scope: { ... }, создающая «изолированную» область видимости, не наследуемую прототипически. Такая конструкция часто используется при создании директив для компонентов «многоразового использования»
Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments6

Глубинное погружение в test-driven JavaScript

Reading time12 min
Views15K
Многие JavaScript-фреймворки предлагают свое представление о том, как должен выглядеть код. Более того, речь идет не просто о стиле, речь идет о способе написания сценариев. Это обусловлено практически абсолютной демократичностью JavaScript, да-да, именно таким является мультипарадигменный язык с С-подобным синтаксисом, прототипным наследованием, динамической типизацией и реализацией разнящейся от браузера к браузеру. Поэтому, когда речь идет о test-driven JavaScript я понимаю, что речь идет не просто об особом стиле программирования, но об особых технических принципах для особого фреймворка позволяющего тестировать JS приложения.

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

Внимание: длиннопост.
Читать дальше →
Total votes 31: ↑21 and ↓10+11
Comments17

Обещания JavaScript

Reading time19 min
Views204K
Всем привет, и ещё раз всех с прошедшими праздниками. Трудовые будни набирают обороты и вместе с ними растёт информационный голод мучающий нас. Мир разработки переднего конца не дремлет и готовит нам много сюрпризов в наступившем году, и уж поверьте мне, скучно не будет ни кому. Одна из новых особенностей которые нам готовят разработчики браузеров совместно с группами разработчиков пишущих спецификации — JavaScript Promises(далее в переводе — Обещания, прошу сильно не бить) — полюбившийся многим шаблон написания асинхронного кода обзаводится нативной поддержкой. Что же такое обещания и с чем их едят можно прочесть в нижеследующем переводе(слегка вольном) замечательной статьи Джейка Арчибальда.

Подробности
Total votes 83: ↑76 and ↓7+69
Comments39

Привлечение пользователей в мобильную игру

Reading time4 min
Views29K
Многие начинающие разработчики впадают в довольно наивное заблуждение: сделаем игру, в которую интересно играть, и заработаем на этом денег. К сожалению, рынок мобильных игр перенасыщен, каждый день выходят сотни новых тайтлов, игрок же способен оценить «интересность» от силы десятка игр в неделю. И вряд ли ваш проект окажется в этой десятке, если не предпринять дополнительных усилий.
Читать дальше →
Total votes 48: ↑42 and ↓6+36
Comments28

Дерек Сиверс: «Метод интервального повторения — лучший способ изучения языков программирования»

Reading time6 min
Views115K
Краткая справка: в 1998 году Дерек Сиверс основал компанию CD Baby и превратил ее в крупнейшего онлайн-продавца независимой музыки. В 2008-ом вырученные от продажи компании $22 миллиона Дерек передал в благотворительный траст на нужды музыкального образования.
Речи Дерека на TED просмотрели более 5 миллионов раз, а его собственная книга занимала первую строку в чарте книг для предпринимателей на Amazon.
Сам себя Дерек считает «вечным учеником».


Я уже год использую этот метод обучения и могу сказать, что он – самый эффективный из тех, с которыми мне довелось столкнуться за 14 лет изучения программирования.
Читать дальше →
Total votes 74: ↑68 and ↓6+62
Comments45

Вы можете развить свой интеллект: 5 способов максимально улучшить свои когнитивные способности

Reading time17 min
Views510K
Не стоит преследовать цели, которые легко достичь. Стоит нацеливаться на то, что удается сделать с трудом, приложив немалые усилия — Альберт Эйнштейн

Несмотря на то, что Эйнштейн не был нейробиологом, он точно знал все, когда говорил о способности человека добиваться чего-либо. Он интуитивно догадывался о том, что лишь сегодня нам удалось подтвердить с помощью данных, а именно: что заставляет когнитивные способности работать на максимально высоком уровне. По существу: То, что тебя не убивает, делает тебя умнее.
Читать дальше →
Total votes 167: ↑135 and ↓32+103
Comments108

Jasmine DRY: а ты правильно пишешь тесты?

Reading time4 min
Views13K
В промежутке времени между переквалификацией с Back-end программиста на Front-end, мне пришлось писать код для RoR приложения (да-да и тесты были). Интересным для меня показалась своеобразная атмосфера сообщества рубистов, которые очень строго относятся к написанию кода и если ты пишешь плохо, то тебе могут поломать пальцы не простить. Ведь код должен быть максимально простым и читабельным.

Это же правило применимо и к тестам (как по мне то, они должны быть на порядок проще чем сам код). В дополнение, в тестах есть свое золотое правило — One Expectation per Test. Не нужно писать кучу expect/assert/should вызовов в одном тесте, просто перестаньте это делать! И не забывайте, что тесты это тоже код, а copy-paste — плохая практика.
Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments12

Директивы в Angularjs для начинающих. Часть 2

Reading time4 min
Views117K
На мой взгляд, директивы являются основной изюминкой декларативного стиля Angularjs. Однако, если открыть комментарии пользователей в разделе официальной документации Angularjs, посвященной директивам, то вы увидите, что самый популярный из них: «Пожалуйста, перепишите документацию, сделайте ее более доступной и структурированной. Начинающему разработчику на Angularjs сложно в ней разобраться» («Please rewrite a clearer well structured documentation of directives., this is not friendly to first time angular developers»). С этим трудно не согласится, документация пока еще сыровата и в некоторых моментах приходится прилагать большие усилия, чтобы разобраться в логике и сути функционала. Поэтому я предлагаю вам свой вольный пересказ данной главы в надежде, что кому-то это позволит сэкономить время, а так же рассчитываю на вашу поддержку и участие в комментариях. Итак, поехали!
Часть 1
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments21

Разработка директив angularjs — это просто

Reading time7 min
Views91K

AngularJS директивы – это клево


AngularJS является каркасом (фреймворком) для построения web приложений, который позволяет создавать сложные приложения достаточно просто. Одна из его лучших возможностей, это создание директив, которые являются повторно используемыми web компонентами. Это дает возможность создавать новые HTML теги и атрибуты, которые могут динамично отображать контент в ответ на изменение данных, и обновлять сами данные, в случае необходимости.
Это очень высокопроизводительный подход, поскольку он позволяет вам оборачивать сложное взаимодействие с DOM в повторно используемые пакеты кода.
Читать дальше →
Total votes 49: ↑41 and ↓8+33
Comments26

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

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

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

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

Несколько JavaScript хаков для хипстеров

Reading time3 min
Views55K
image
JavaScript занимательный язык программирования.

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

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

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

Все это я узнал, изучая проекты с исходным кодом, но здесь я пишу так, как будто бы это я их придумал.
Читать дальше →
Total votes 217: ↑131 and ↓86+45
Comments128

Events bubbling и events capturing

Reading time5 min
Views64K
intro
Представьте, что на странице есть два блока, и один вложен в другой, как это показано на рисунке. В разметке страницы это выглядит так:
   <div id="block_outer">
      <div id="block_inner"></div>
   </div>

А теперь представьте, что к блоку #block_outer привязано событие onClickOuter, а к блоку #block_inner, соответственно, событие onClickInner. И ответьте на вопрос, как сделать так, чтобы при клике на блок #block_inner, событие onClickOuter не вызывалось? И будет ли оно вообще вызвано? И если будет, то в каком порядке события будут вызываться? И знаете ли вы, как работает метод jQuery.live или подобные в других библиотеках (events delegation в ExtJS, например)?
Если я хоть немного заинтересовал, добро пожаловать под кат.
Total votes 93: ↑87 and ↓6+81
Comments21

Shadow DOM

Reading time7 min
Views69K
Ссылка на стандарт: www.w3.org/TR/2013/WD-shadow-dom-20130514

Итак, что же такое shadow DOM:
Shadow DOM (или теневая модель документа) — часть документа, реализующая инкапсуляцию в DOM дереве. Она (теневая модель) является частью документа и встраивается непосредственно внутрь страницы.
Для упрощения отладки shadow DOM, в хроме можно включить отображение в веб-инспекторе (Settings — General — Show shadow DOM).

Надо заметить, что в стандарте реализуемая инкапсуляция называется функциональной, поскольку shadow DOM встраивается в документ и является одной из многих его частей, работающих «независимо» (более-менее независимо) друг от друга. Соответственно, при проектировании реализации, нужно было установить функциональные границы в дереве документа, чтобы как-то оперировать с множеством таких «независимых» фрагментов. Для решения проблемы инкапсуляции, и была введена новая абстракция — shadow DOM, позволяющая создавать несколько DOM деревьев в пределах одного родительского дерева и был разработан документ, описывающий ее.
Читать дальше →
Total votes 36: ↑31 and ↓5+26
Comments28

DOM MutationObserver — реакция на изменение DOM не убивая производительность браузера

Reading time3 min
Views64K
DOM Mutation Events в свое время казались отличной идеей — веб-разработчики начали создавать более динамичные приложения, и казалась естественной та радость с которой были встречены новые возможности прослушивать изменения DOM и реагировать на них. На практике, однако, оказалось, что у DOM Mutation Events имеются серьезные проблемы с производительностью и стабильностью. Не удивительно, что спецификация через год получила статус “устаревшей”.

Но сама идея, лежащая в основе DOM Mutation Events казалась привлекательной и поэтому в сентябре 2011 г. группа инженеров Google и Mozilla представила предложение о DOM MutationObserver, с похожей функциональностью, но улучшенной производительностью. Это новое DOM-API доступно начиная с версий: Firefox 14, Chrome 18, IE 11, Safari 6 (остальные браузеры — caniuse.com/mutationobserver)
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments17

Bitcoin. Как это работает

Reading time10 min
Views755K
О Bitcoin я узнал относительно недавно, но он меня сразу подкупил своей идеей p2p. Чем глубже я зарывался в их Wiki, тем больше проникался этой идеей. Ее реализация красива и элегантна с технической точки зрения.

Поиск хабра по Bitcoin выдает два топика. Но это скорее новости. По комментариям заметно, что у многих людей, особенно не знакомых с Bitcoin напрямую, возникает много вопросов насчет принципов его работы. Также много догадок, зачастую неверных. Чтобы как-то прояснить ситуацию, было решено написать эту статью.
Читать дальше →
Total votes 111: ↑99 and ↓12+87
Comments226

Использование паттернов проектирования в javaScript: Порождающие паттерны

Reading time5 min
Views75K
Привет, хабр!
С удивлением обнаружил отсутствие на хабре развернутой статьи о сабже, что немедленно сподвигло меня исправить эту вопиющую несправедливость.

В условиях когда клиентская часть веб-приложений становится все более толстой, бизнес-логика неумолимо переползает на клиент, а на суверенитет серверных технологий все более смело посягает node.js нельзя не задуматься о приемах проектирования архитектуры на javaScript. И в этом деле нам несомненно должны помочь паттерны проектирования — шаблонные приемы решения часто встречающихся задач. Паттерны помогают построить архитектуру, которая потребует от вас наименьших усилий при необходимости внести изменения. Но не стоит воспринимать их как панацею, т.е., грубо говоря, если качество кода «не фонтан», он кишит хардкодом и жесткой связью между логически независимыми модулями, то никакие паттерны его не спасут. Но если стоит задача спроектировать масштабируемую архитектуру, то паттерны могут стать хорошим подспорьем.
Но впрочем эта статья не о паттернах проектирования как таковых, а о их применении в javaScript. В первой части этой статьи я напишу о применении порождающих паттернах.
Читать дальше →
Total votes 60: ↑45 and ↓15+30
Comments30

TDD в JavaScript. Разработка приложения

Reading time9 min
Views14K
Всем привет. Данная статья посвящается методологии Разработки через тестирование (TDD) в применении c JavaScript.
Напишу лишь вкратце о методологии TDD, более подробную информацию можно почерпнуть из ссылки выше.

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

Читать дальше →
Total votes 48: ↑45 and ↓3+42
Comments26
1

Information

Rating
Does not participate
Location
Charbakh, Yerevan, Армения
Date of birth
Registered
Activity