Как стать автором
Обновить
77
0
Матросов Михаил @mmatrosov

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

image

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

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

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


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

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

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

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

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

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

image
Читать дальше →
Всего голосов 44: ↑34 и ↓10+24
Комментарии29

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

Время на прочтение2 мин
Количество просмотров5.8K
Вам знакомо такое чувство: вы ежедневно читаете много отличных статей на интересные темы и все время огорчаетесь, что сами не умеете так же красиво формулировать мысли? Или же у вас просто не хватает времени сесть за клавиатуру и поделиться тем, что знаете? Однако вы умеете анализировать много разных материалов и группировать информацию по тематике/автору/технологии?

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

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

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

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

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

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

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

image

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

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

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

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

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

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

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

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

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


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

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

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

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


Читать дальше →
Всего голосов 55: ↑50 и ↓5+45
Комментарии1

Download Peter Thiel’s brain

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


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

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

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

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

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


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

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

Под катом — опросник
Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии12

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

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

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

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

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

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

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

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

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

Читать дальше →
Всего голосов 62: ↑54 и ↓8+46
Комментарии33

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

Время на прочтение3 мин
Количество просмотров63K
Добрый день, уважаемое хабрасообщество!image

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

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

Python for Programmers

Время на прочтение1 мин
Количество просмотров31K
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 версиями Питона.
Читать дальше →
Всего голосов 81: ↑75 и ↓6+69
Комментарии9

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность