Pull to refresh
77
0
Матросов Михаил @mmatrosov

User

Send message

Создание архитектуры программы или как проектировать табуретку

Reading time25 min
Views681K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

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

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →
Total votes 88: ↑85 and ↓3+82
Comments45

N+5 полезных книг

Reading time5 min
Views58K


Привет! Это пятый с 2010 года список полезных книг. Набралась всего дюжина за два года. Смотрите, что можно скачать в дорогу или просто почитать, когда будет время, и делитесь, пожалуйста, в комментариях своими (я буду поднимать их в пост). В этой подборке довольно много социнжиниринга, точнее, тем около него. Поехали.

Конструкции, или почему не ломаются вещи, Дж. Гордон
Прекрасная, хоть и очень длинная штука, которая рассказывает про сопромат простыми словами и почти для детей. Но на уровне жёсткого хардкора. По своей полезности для осознания физики вокруг может сравниться с не менее прекрасной современной «Квантовая вселенная. Как устроено то, что мы не можем увидеть» Брайана Кокса и Джеффа Форшоу. Рекомендую обе. Будет, что почитать в дороге, если вдруг почувствуете, что играть на планшете надоело. И о чём подумать, когда выяснится, что вся та фигня, которую вам давали на уроках химии, физики и прочего в школе и университете вдруг начинает выстраиваться в стройную теорию.

Evil by Design, Крис Ноддер
Один из лучших подходов к проектированию чего-то хорошего — это спроектировать сначала самое ужасное из возможного. Пользователь обычно не скажет, как сделать ему хорошо, но точно знает, как бывает плохо. Например, юзер не говорит «я хочу, когда нажимаю на ссылку напоминания пароля, там в поле уже была введена почта», зато вполне способен сказать: «слушай, меня дико бесит, когда логинишься, тебе показывают новую страницу про то, что пароль не подошёл, и, чтобы его восстановить, надо ещё один долбанный раз вводить почту». Вся книга Криса состоит из таких «тёмных» шаблонов, когда какие-то гады намеренно вводят вас в заблуждение. Он там очень переживает за этику, поэтому вступления лучше пропустить. Единственная в этом обзоре книга на английском, но довольно простом.
Читать дальше →
Total votes 66: ↑64 and ↓2+62
Comments34

Уютный книжный пост для вас и вашего проекта

Reading time8 min
Views131K
Как заработать миллион за день, стать искусным оратором за неделю, похудеть на 100 кг за 2 дня, стать успешным в тысяча ста начинаниях и прочая мишура регулярно засоряет наше информационное пространство. А порой так хочется взять в руки книгу, которая не просто съест кусок вашего свободного времени повествуя о неприменимых в отечественных реалиях вещах, но и подкинет хотя бы несколько полезных советов, способных оказать позитивное влияние на развитие вашей личности и вашего проекта.

Если вы хотите найти и/или поделиться хорошими книгами, добро пожаловать под кат.

image

Читать дальше →
Total votes 76: ↑62 and ↓14+48
Comments45

Яндекс запустил сервис заказа услуг в Москве и Петербурге

Reading time2 min
Views34K
Сегодня «Яндекс» выложил в открытый доступ бета-версию своего нового проекта: сервиса по заказу бытовых услуг — ремонт, уборка, переезд и т.п. — "Яндекс-мастер". Сейчас к нему подключены 43 компании, оказывающих услуги в Москве и Петербурге, ведётся поиск партнёров и в других городах.


Скриншот главной страницы "Яндекс-мастера"
Читать дальше →
Total votes 53: ↑48 and ↓5+43
Comments42

Айтишник на отдыхе: добавим немного астрономии?

Reading time6 min
Views125K

Стремительно приближается лето и сопутствующие ему выезды на природу. Посиделки затягиваются заполночь, и над головой появляются звезды. Но, как правило, зведное небо таинственно и непонятно — астрономию в школах не преподают толком, наверное, уже с конца 80-х, да и кто помнит, чему его учили в школе, если это не использовалось в жизни постоянно? А в небе хватает интересного, особенно если потратить чуть-чуть времени на астрономическое обеспечение выезда на природу.
Читать дальше →
Total votes 107: ↑104 and ↓3+101
Comments81

Аддон для Overclock`a сознания или флешбек-профи

Reading time3 min
Views69K
В продолжение темы ОС и этих двух постов: «Overclock мозга или внутренняя виртуализация сознания», Патч для гипервизора сознания хотелось бы поделиться своим опытом в данном сабже, а так же мало задокументированной, но зато намного более простой возможностью «прокачать» свой мозг.

image
Читать дальше →
Total votes 44: ↑34 and ↓10+24
Comments29

Curah! или сам себе куратор

Reading time2 min
Views5.8K
Вам знакомо такое чувство: вы ежедневно читаете много отличных статей на интересные темы и все время огорчаетесь, что сами не умеете так же красиво формулировать мысли? Или же у вас просто не хватает времени сесть за клавиатуру и поделиться тем, что знаете? Однако вы умеете анализировать много разных материалов и группировать информацию по тематике/автору/технологии?

Для тех людей, которые по тем или иным причинам не создают свой собственный контент, однако очень хотят быть полезными людям, компания Microsoft создала свой сервис под названием "Curah!". Как можно догадаться из названия, оно обыгрывает слово Curate, что означает курировать (тут, соглашусь, даже русское слово мало что объясняет. Вот ссылка на словарь).

Суть сервиса простая — дать возможность людям создавать свои собственные подборки ссылок на материалы, авторами которых они не являются.
Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments9

Enlarge your pension-3. Примеры. Все познается в сравнении

Reading time4 min
Views29K
Первым же комментарием к предыдущему топику про тушение пожара керосином был вопрос о вкладе эмпирики в формирование накопительного портфеля. Это очень хороший, правильный и своевременный вопрос, сразу чувствуется разумность хабро-сообщества. Конечно «эмпирически» задним умом можно получать какие угодно хорошие цифры. Сама портфельная теория Марковица в лоб не используется именно потому, что все характеристики активов имеют склонность меняться во времени, в том числе после формирования портфеля активов. С классами активов проще.

На западе есть такой термин “портфель простака”, “портфель лежебоки”. Пусть я простак (это предположение недалеко от истины) и у меня нет экономического образования. Я выбираю, куда можно инвестировать. Какие рынки мне могут прийти в голову? Их не так-то много:
Читать дальше →
Total votes 42: ↑37 and ↓5+32
Comments20

На Coursera вышел курс от нобелевского лауреата с русским дубляжом

Reading time2 min
Views89K
Недавно на Coursera произошло примечательное событие — вышла дублированная версия курса «Финансовые Рынки» (Financial Markets) о самых азах финансов.

image

И примечательно оно потому как раньше дублированных курсов на платформе не существовало, а первый появился именно на русском языке. Во-вторых, сделано это было на частное пожертвование. И в-третьих, курс прочитал профессор Йельского университета, нобелевский лауреат по экономике 2013 года – Роберт Шиллер.
Читать дальше →
Total votes 77: ↑76 and ↓1+75
Comments39

Интервью: как С# и C++ помогают заработать на фондовом рынке

Reading time7 min
Views60K
Одним из самых популярных топиков в нашем блоге стал рассказ о Джесси Сполдинге — парне, который заработал $500к на фондовом рынке, применив свои познания в программировании и понимание основ фондового рынка (часть 1, часть 2). В комментариях к этим текстам некоторые хабрапользователи выражали свое сомнение в реалистичности такого сценария в нашей стране. Также слышались фразы вроде «ну он раньше работал в этой сфере».

В связи с этим редакция блога ITinvest поговорила с Андреем Горьковенко — разработчиком, который повторил путь Джесси Сполдинга и сумел перевернуть свою жизнь с помощью фондового рынка и технологических знаний. Этим текстом мы открываем цикл интервью с непосредственными участниками процессов на российском фондовом рынке — разработчиков софта, трейдеров и руководителей компаний.

Примечание: Андрей Горьковенко раньше работал программистом в ITinvest. В частности, он трудился над проектом торгового терминала SmartX (история его создания описана в отдельном хабратопике). Позднее он создал универсальную механическую торговую систему, с помощью которой можно реализовывать различные стратегии торговли на фондовом рынке. Эта разработка приносит ему основной доход, который превышает среднюю зарплату разработчика в Москве.

Андрей, привет! Расскажи, как ты вообще оказался связан с фондовым рынком?

В 2007 году я ушел с четвертого курса Воронежского военного института радиоэлектроники и начал искать работу. Поскольку я всегда увлекался программированием, и, как мне казалось, обладал определенными навыками в этой области, то рассматривал соответствующие вакансии. Так получилось, что мне предложили место в местном воронежском отделении одного из крупнейших российских брокеров.
Читать дальше →
Total votes 61: ↑37 and ↓24+13
Comments22

Пишем свой пакет для Chocolatey

Reading time6 min
Views18K


Chocolatey — пакетный менеджер для windows сильно облегчающий процедуру установки программ, а уж сколько он экономит времени. Про это чудо уже писали на хабре и даже было показано как написать свой пакет для него, но там было больше ручной работы, я же хочу показать как можно немного упростить это дело.
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments4

Семь самых интересных задач RCC за все годы по мнению Андрея Станкевича

Reading time14 min
Views12K
В преддверии первого квалификационного раунда Russian Code Cup, который состоится 19 апреля, мы решили рассказать вам о семи самых интересных задач RCC за всю историю чемпионата по мнению Андрея Станкевича — доцента кафедры компьютерных технологий ИТМО, лауреата Премии Президента Российской Федерации в области образования, лауреата премии ACM-ICPC Founder’s Award, лауреата специальной премии корпорации IBM за успехи в тренерской работе.

Напоминаем, для того чтобы принять участие в Russian Code Cup, нужно зарегистрироваться на сайте http://russiancodecup.ru/ (регистрация будет открыта до начала третьего квалификационного раунда).


Читать дальше →
Total votes 55: ↑50 and ↓5+45
Comments1

Download Peter Thiel’s brain

Reading time2 min
Views12K
В очередной раз проверял свой рейтинг на Хабре, обнаружил себя 175, а 176 — автор постов-переводов выступления Питера Тиля (которые я перечитал 2 раза еще год назад).
И понеслась лавина идей.
(Я тут же написал zag2art свою идею — издать «методичку» для того, чтобы в каждом бизнес-инкубаторе имелась на видном месте, и запустить проект на бумстартере. И ооопа! через 2 минуты я вижу, что я не первый с подобной идеей — американцы опередили, но все же есть возможность создать из нуля единицу).


Весной 2012, Питер Тиль (Peter Thiel), один из основателей PayPal и первый инвестор FaceBook, провел курс в Стенфорде — «Стартап». Перед началом Тиль заявил: «Если я сделаю свою работу правильно, это будет последний предмет, который вам придется изучать»

За год добровольцы (zag2art, astropilot, mg1, ardin, barfuss,degorov, f1yegor,shellx,SemenOk2,9e9names,ntonio) перевели конспекты. За что им огромное спасибо.

Автор английской версии конспектов, будучи предприимчивым (или восприимчивым — он понял о том что говорит Тиль: «Действуй») анонсирует выпуск книги летом 2014.

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

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


На мой взгляд — эти конспекты являются лучшим пособием, которое инсталлирует адекватный/современный стартаперский mindset (мировоззрение, картина мира).

Если книга выйдет на русском языке, кто готов купить эту книгу?

Под катом — опросник
Читать дальше →
Total votes 28: ↑22 and ↓6+16
Comments12

How-to: как выбрать язык программирования для создания торгового робота

Reading time24 min
Views64K
image

Один из самых распространенных вопросов, который задают люди, только начинающие интересоваться алгоритмической торговлей это «Какой язык программирования для этого подходит лучше всего?». Само собой, короткий ответ заключается в том, что никакого «лучшего» варианта не существует. При выборе инструмента следует учитывать параметры торговой стратегии, необходимую производительность, модульность, методологию разработки и требования к отказоустойчивости. В этой статье мы поговорим о главных компонентах архитектуры алгоритмической торговой системы и о том, как каждый из них влияет на выбор языка программирования.
Читать дальше →
Total votes 44: ↑30 and ↓14+16
Comments22

Linux Foundation совместно с EdX начинает бесплатный курс «Введение в Linux»

Reading time1 min
Views44K
image

Официальный учебный курс «Введение в Linux» от Linux Foundation, который ранее стоил 2400 долларов, будет доступен бесплатно на платформе онлайн-обучения EdX. Записаться на курс можно уже сейчас. Платформа массового онлайн-обучения EdX была создана Массачусетским технологическим институтом совместно с Гарвардским университетом. На ней представлены уже больше 30 университетов. Теперь и Linux Foundation станет официальным партнёром EdX. Курсу присвоен код LFS101x. Он рассчитан на 40 — 60 часов обучения. Занятия начнутся в 3-м квартале 2014 года.
Читать дальше →
Total votes 86: ↑83 and ↓3+80
Comments22

Как я перехватывал трафик покер рума или «Пишем свой MitM SSL прокси на C#»

Reading time5 min
Views76K
Однажды у меня появилась навязчивая идея: посмотреть, а что же там такого покерный клиент отправляет на сервер. Как Вы понимаете, крупные покерные румы используют SSL для передачи данных. Протоколы, основанные на асимметричном шифровании, подвержены только одному известному мне виду атак — MitM (Man in the middle — человек посередине).

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

Читать дальше →
Total votes 62: ↑54 and ↓8+46
Comments33

Основы Scala. 5 часов поедания мозгов

Reading time3 min
Views63K
Добрый день, уважаемое хабрасообщество!image

В конце ноября 2013 года мы с коллегой устроили встречу, на которой провели сеанс «интенсивного введения Scala в мозг добровольцев».

Выкладываю на суд общественности наше творчество и краткое описание «эксперимента».
Читать дальше →
Total votes 54: ↑52 and ↓2+50
Comments29

Python for Programmers

Reading time1 min
Views31K
Alex Martelli Многие знакомы с выступлением Алекса Мартелли (Alex Martelli) на Google Tech Talk под названием Python for Programmers (слайды) — в нём он чётко и лаконично рассказывает основы Питона для тех, кто уже умеет программировать, например на C, С++ или Java. По его презентации я сам учил Питон четыре года назад, перед тем как начать использовать его в преподавании программирования на матмехе СПбГУ.

Сегодня хочу представить вам интерактивный вариант этой презентации — онлайн мини-курс Python for Programmers, созданный и опубликованный под лицензией Creative Commons с разрешения Алекса. Мы добавили к его презентации интерактивных упражнений, обновили материал с Python 2.5 до Python 3.3, добавили информацию по актуальным библиотекам и разнице между 2 и 3 версиями Питона.
Читать дальше →
Total votes 81: ↑75 and ↓6+69
Comments9

Information

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