Так сложилось, что к тридцати годам я менял работу лишь единожды и не имел возможности на собственном опыте изучить, как в различных компаниях устроены веб-проекты, расчитанные на высокую скорость отклика и большое количество пользователей. <irony> Так что, дорогой читатель, попавший в поле моего зрения в оффлайне, увидев меня, лучше беги, пока я не начал докучать тебе вопросами на тему обработки ошибок, логирования и процесса обновления на рабочих серверах</irony>. Мне интересен не столько набор используемых технологий, сколько принципы, на которых построена кодовая база. Как код разбит на классы, как классы распределены по слоям, как бизнес-логика взаимодействует с инфраструктурой, каковы критерии по которым оценивается качество кода и как организован процесс разработки нового функционала. К сожалению, подобную информацию найти непросто, в лучшем случае всё ограничивается перечислением технологий и кратким описанием разработанных велосипедов, а хочется, конечно, более детализированной картинки. В этом топике я попытаюсь как можно более подробно описать, как устроен код в компании, где работаю я.
Читать полностью »
Архив за 02 февраля 2015 - 13
Как устроен наш код. Серверная архитектура одного проекта
2015-02-02 в 7:03, admin, рубрики: .net, ASP.NET, hstore, postgresql, никто не читает теги, Программирование, проектирование, Проектирование и рефакторингКак мы обеспечивали связь в городах Северного Полярного Круга
2015-02-02 в 7:00, admin, рубрики: архитектура, базовая станция, Блог компании ВымпелКом (Билайн), ит-инфраструктура, Лабытнанги, машинный зал, медиашлюз, мобильная связь, мобильный коммутатор, модернизация сети, Ноябрьск, опорная сеть, покрытие, радиорелейные линии, радиосвязь, Салехард, север, Северный Полярный Круг, телефония, транспортные каналы, трафикСеверный Полярный Круг – это низкие температуры и вечная мерзлота под ногами. Климат в таких краях резко континентальный и суровый. Но здесь нужна связь. Например, в Салехарде и Лабытнанги.

Суровый зимний климат в г. Салехард
Мы провели модернизацию оборудования мобильной связи в этих городах и развернули новую опорную сеть. Был выполнен «перенос» мобильного коммутатора через реку Обь и осуществлена «телепортация» абонентов на новое оборудование. Я отвечал за организационную и техническую части этого северного проекта. Читать полностью »
STM32 и FreeRTOS. 4. Шаг в сторону HAL
2015-02-02 в 6:55, admin, рубрики: freertos, open source, stm32, программирование микроконтроллеров, разработкаHAL 9000: I'm completely operational, and all my circuits are functioning perfectly.
или это должно быть первой статьей, но я почему-то всегда пишу подобное ближе к концу
Раньше было про потоки, про семафоры и очереди
Одним из основных препятствий для перехода на STM32 является обилие текстов, инструкций и мануалов, описывающих работу с контроллером. Виновником этого обилия стала сама STMicroelectronics, которая поначалу планомерно запутывала своих пользователей, а затем предлагала неверные варианты выхода.
Проблема заключается в многообразии выпускаемых контроллеров, которые почему-то требовали разных процедур инициализации даже для одной и той же периферии. И код, работающий на одном контроллере, отказывался работать на другом. В результате по сети гуляют сборники шаманских рецептов, для понимания которых требуется куча времени и воскуривание даташитов.
Но не так давно ST поняла, в какую яму она угодила и начала усиленно из нее выбираться, привлекая новые силы. И именно благодаря этому сейчас время старта сократилось до несуразно маленьких величин. Как это выглядит на практике? Добро пожаловать под кат
Игровой 27-дюймовый монитор BenQ XL2730Z: подробности
2015-02-02 в 6:40, admin, рубрики: Новости, метки: новостиИгровой монитор BenQ XL2730Z, поддерживающий технологию AMD FreeSync, был анонсирован в конце прошлого года и демонстрировался на январской выставке CES 2015. Однако ни в момент анонса, ни на североамериканском шоу характеристики изделия полностью не раскрывались. Устранить этот пробел взялся немецкий источник, он же раскрыл и стоимость новинки.
Драгдилеры переходят с iPhone на Nokia 8210, чтобы избежать слежки полиции
2015-02-02 в 6:18, admin, рубрики: ТехноНаркоторговцы в английском Бирмингеме перестали пользоваться iPhone и обратились к обычным «звонилкам», чтобы избежать слежки полиции, сообщает Gearmix. Как утверждает источник в британской прессе, самой популярной моделью у драгдилеров является модель Nokia 8210, поскольку она достаточно миниатюрна и очень долго держит заряд батареи.

Находим опечатки в **kwargs
2015-02-02 в 6:18, admin, рубрики: python, опечатки, расстояние дамерау-левенштейна
По мере разрастания проекта, в котором я сейчас принимаю активное участие, стал все чаще встречаться с подобными опечатками в именах аргументов у функции, как на картинке справа. Особенно дорого в отладке обходились подобные ошибки в конструкторе класса, когда при длинной цепочке наследования передавался неправильный параметр базового класса, или вообще не передавался. Перекраивание интерфейсов на специальные пользовательские структуры вроде namedtuple вместо **kwargs имело несколько проблем:
- Ухудшало взаимодействие с пользователем. Нужно передавать в функцию специально сконструированный объект. Не понятно что делать с необязательными аргументами.
- Усложняло разработку. При наследовании классов нужно наследовать соответствующие структуры аргументов. С namedtuple-ом не получится это сделать, надо писать собственный хитрый класс. Куча работы по внедрению.
- И главное, все равно полностью не спасало от опечаток в именах.
Решение, к которому я в итоге пришел, не может защитить в 100% всех возможных случаев, однако в тех необходимых 80% (в моем проекте, 100%) прекрасно справляется со своей задачей. Если кратко, оно заключается в анализе исходного (байт)кода функции, построении матрицы расстояний между найденными «настоящими» именами и переданными извне и печати предупреждений по заданным критериям. Исходники.
Читать полностью »
IO.js или старые грабли под новым соусом
2015-02-02 в 6:15, admin, рубрики: io.js node.js javascript, javascript, node.js 
«Свершилось! Node.js получило развитие в виде форка io.js! Привет ES6! Привет новый V8!» радовались разработчики. Полез смотреть с надеждой, что вот сейяас, начав с нуля, ребята исправили фундаментальные косяки!
Какие фундаментальные ошибки допущены и почему без их исправления промышленный масштаб является спорным или попросту недостижимым.
Эзотерические языки программирования Folders и Groot
2015-02-02 в 5:43, admin, рубрики: Folders, Groot, Marvel, комиксы, ненормальное программирование, Программирование, эзотерические языкиПрограммы можно писать структурой папок или изречениями персонажа Вина Дизеля
Эзотерические языки программирования — это нечто среднее между шуткой в индустрии программного обеспечения, искусством и исследованием пределов знаний человечества. Как правило, вне узких кругов гиков известны не образцы, являющиеся математическими доказательствами, а Brainfuck и что-нибудь популярное, к примеру, ArdnoldC. Новые примеры эзотерических языков появляются достаточно часто.
Дэниел Темкин создал эзотерический язык программирования Folders. Это первый язык, созданный специально для его блога esoteric.codes. Как следует из названия, программирование в этом языке не требует файлов, нужно лишь дерево папок файловой системы, структура которого и определяет код. Пример Hello World на языке Folders представлен слева.
Читать полностью »
Бэт-сигнал с изображением летучей мыши в ночном небе Готэм-сити скоро станет реальностью. В Японии продемонстрировали возможность создания свободно плавающих в воздухе изображений. Изобретатели надеются, что разработанное ими устройство, которое задействует лазеры, однажды будет использовано для оповещения людей об опасности, например, приближающегося цунами.


Взгляд на то, как делать ленту TMFeed
2015-02-02 в 7:01, admin, рубрики: css, HabraDarkAge, tmfeed, userstyles, ZenComment, интерфейсы, Расширения для браузеров, Хабрахабр APIпрошла смешная новость про объединениемы были свидетелями Великого Объединения разрозненных лент. Сообщения из Хабра, Гиктаймса и ещё одного-выкинутого недавно-сервиса ребята из некого стартапа «ТМ» объединили на хакатоне в одну ленту. Большое спасибо им за это,-а то многие уже сами расчехлили огнемёты,-потому что этого многие очень ждали. Теперь мы можем взять их код и-исправить косяки-внести вклад в развитие этого безусловно нужного продукта. Даже по отдельным признакам можно заметить, что он будет развиваться, а значит, наши скромные усилия не пропадут даром. Github.Что хотелось бы исправить?
Читать полностью »