Сегодня исполнилось бы 107 лет Грейс «Amazing» Хоппер, контр-адмиралу флота США, а по совместительству разработчику первого в мире компилятора и популяризатору (и, в какой-то степени, автору) термина debugging.
Читать полностью »
Рубрика «Программирование» - 925
Сегодня праздник у ребят
2013-12-09 в 5:22, admin, рубрики: история, История ИТ, отладка, Программирование, тестирование, метки: история, отладка, Программирование, тестированиеFlightstats API: Пишем свое табло прилетов с Боингами и Аэробусами
2013-12-07 в 19:18, admin, рубрики: Airbus, api, Boeing, diy или сделай сам, python, Программирование, метки: Airbus, api, BoeingВведение
Всем читающим этот пост — здравствуйте.
Авиация — мое хобби, я об этом уже писал. Я готов часами стоять и фотографировать самолеты, смотреть видео о них, читать блоги летчиков, следить за трафиком на fr24.com. А еще мне нравится то, что в авиации кругом одни сокращения: ECAM, CDA, ACESS, APU и так далее. Вообщем, магия. А вот почти все люди из моего окружения к авиации равнодушны: «Ну самолет, как самолет. Большой, да. Что? Boeing 777-300ER? Ну ясно, ясно...». Но ничего не поделаешь, на вкус и цвет все фломастеры разные.
Как ко мне пришла идея поста? Так получилось, что я живу в 20 минутах езды от аэропорта Шереметьево. Как-то у меня выдался свободный час и приехал немного пофотографировать. За то время, пока я там был, мимо меня пролетело около 10 самолетов. Почти все — Аэрофлот. Я не спорю, у Аэрофлота есть интересные борты. Например, Добролет или Хохлома. Но в тот день мне не повезло, ничего подобного я не увидел. И тогда я подумал, что было бы очень полезно планировать подобные выезды. Вот так вот и родилась идея поста. Мне хотелось иметь следующий функционал: таблица вылетов — прилетов для выбранного аэропорта, выделение цветом как интересных, так и не очень ботов, экспорт в pdf.
Начинаем!
PyFence: верификация типов для Python
2013-12-06 в 13:22, admin, рубрики: open source, python, type safety, Программирование, метки: open source, python, type safetyPyFence — самопальная утилита-библиотека, которая позволяет следить за соответствием типов во время отладки вашего проекта. PyFence берет информацию о типах из docstring'ов функций в стандартном формате Sphinx. То есть, если у вас уже есть документация, больше ничего делать для использования PyFence не нужно!
Например, возьмем следующий класс:
Читать полностью »
На границах, приложения не являются объектно-ориентированными
2013-12-06 в 12:05, admin, рубрики: .net, best practices, Mark Seemann, инкапсуляция, Программирование, Совершенный код Я получил множество отзывов на мою недавнюю серию постов по Poka-yoke проектированию (я был бы расстроены, если было бы иначе). Множество из этих отзывов касаются различных технологий сериализации или трансляции, используемых обычно на границах приложения: сериализация, XML (де)гидратация (прим. переводчика: тоже самое, что и сериализация), UI-валидация и т.д. Заметьте, что такая трансляция происходит не только по периметру приложения, но также и на уровне сохраняемости (persistence). ORM-ы также являются трасляционными механизмами.
Общим для многих комментариев является утверждение о том, что большая часть технологий сериализации требует наличия конструктора по умолчанию. Например, класс XmlSerializer требует наличия конструктора по умолчанию и публичных, доступных для записи свойств. Большая часть объектно-реляционных преобразователей, которые я изучал, похоже, имеют те же требования. Контролы Windows Forms и WPF (UI – также граница приложения) почти обязаны иметь конструктор по умолчанию. Не нарушает ли это инкапсуляцию? И да и нет.
Читать полностью »
«Запах» проектирования: конструктор по умолчанию
2013-12-06 в 11:53, admin, рубрики: .net, best practices, Mark Seemann, инкапсуляция, Программирование, Совершенный кодЭто пятый пост из серии о Poka-yoke проектировании – также известном, как инкапсуляция.
Конструкторы по умолчанию являются «запахом» в коде. Именно так. Это может звучать возмутительноЧитать полностью »
«Запах» проектирования: излишний атрибут Required
2013-12-06 в 11:38, admin, рубрики: .net, best practices, Mark Seemann, инкапсуляция, Программирование, Совершенный код, метки: best practices, инкапсуляцияЭто четвёртый пост из серии о Poka-yoke проектировании – также известном, как инкапсуляция.
Недавно, я прочитал из какого-то технологического события Microsoft пост, написанный с энтузиазмом:
Атрибут [Required] в коде автоматически создаёт запись в БД, которая не может принимать null, а также создаёт валидацию на веб-странице – симпотично […]
«Запах» проектирования: одержимость примитивами
2013-12-06 в 11:17, admin, рубрики: .net, best practices, Mark Seemann, инкапсуляция, Программирование, Совершенный кодЭто второй пост из серии о Poka-yoke проектировании – также известном, как инкапсуляция.
Множество классов имеют тенденцию к потреблению или раскрытию примитивных значений, таких как int, или string. В то время как такие примитивы существуют на любой платформе, их использование может приводить к процедурному коду. Более того, они обычно нарушают инкапсуляцию, допуская присвоение некорректных значений.
Читать полностью »
«Запах» проектирования: временная связность
2013-12-06 в 11:15, admin, рубрики: .net, best practices, Mark Seemann, инкапсуляция, Программирование, Совершенный код Это первый пост из серии о Poka-yoke проектировании – также известном, как инкапсуляция.
Известной проблемой в проектировании API является временная связность, которая получается в том случае, если в классе присутствуют скрытые отношения между двумя или более членами, требующие от клиента правильной последовательности вызовов. Это жёстко связывает члены класса во временном разрезе.
Читать полностью »
Финал открытого соревнования по программированию искусственного интеллекта Russian AI Cup 2013
2013-12-05 в 14:19, admin, рубрики: mail.ru, Блог компании Mail.Ru Group, Программирование, Спортивное программирование, метки: mail.ruВ ближайший weekend (а именно, 7-8 декабря) состоится Финал открытого соревнования по программированию искусственного интеллекта Russian AI Cup 2013. В этом году участники пишут программы, которые управляют маленькой армией солдат, состоящей из командира, медика, снайпера, скаута и пехотинца, и сражаются друг с другом на специально приготовленных локациях.
Уже известны имена 50 счастливчиков, которые попали в Финал по итогам Раунда 2, но, согласно Правилам (см. схему ниже), дополнительно Топ 10 Песочницы также получат приглашение на участие в Финале!
Просто о сложном. Архитектура ПО
2013-12-05 в 6:47, admin, рубрики: архитектура, информационные технологии, Программирование, проектирование, Проектирование и рефакторинг, управление проектами, метки: архитектура, информационные технологии, проектированиеНедавно я написал:
Для программных продуктов еще не придумали адекватные инструменты визуализации. Об этом говорил еще Брукс, почти 40 лет назад. Поэтому разработчики ПО часто уподобляются слепым монахам из буддийской притчи.
Следствие #5. Необходимость постоянных коммуникаций участников разработки.
Из опыта. В среднем у каждого участника проекта разработки ПО на всякие разговоры уходит 50% рабочего времени. У нас это называется «синхронизация ментальных моделей».
И вот, как это обычно выглядит.


