Как стать автором
Обновить
17
0
Олег Поливанный @Enpire

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

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

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

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

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

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

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

UG007: мини-ПК с Bluetooth, двухъядерным процессором и Android 4.1.1 за 60 у.е

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


Да, Raspberry Pi пока что вне конкуренции — практически нет миниатюрных ПК подобного класса за подобную цену. Но чем дальше в лес с течением времени появляется все больше интересных моделей мини-ПК, которые являются более функциональными, чем указанная модель. Одним из интересных вариантов является UG007, это миниатюрный ПК в форм-факторе флешки, который может похвастаться двухъядерным процессором Rockchip RK3066 с частотой работы ядра 1,6 ГГц, 1 ГБ ОЗУ и 8 ГБ внутренней памяти.

Читать дальше →
Всего голосов 56: ↑49 и ↓7+42
Комментарии107

Жизнь разработчика (в картинках)

Время на прочтение1 мин
Количество просмотров65K
Взято отсюда специально для хабра. Возможно, в некоторых из ситуаций вы узнаете себя.

Когда я показываю босу, что окончательно пофиксил баг



Когда проджект-менеджер входит в офис



Читать дальше →
Всего голосов 884: ↑700 и ↓184+516
Комментарии132

Ресурсы, о которых должен знать каждый Android-разработчик

Время на прочтение6 мин
Количество просмотров189K
Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com и занимается разработкой туристических гидов под общим названием Citybot.

В то время как Android продолжает свой невероятный рост, всё больше и больше программистов начинают разрабатывать приложения на этой платформе. Если ты начинаешь свой путь сегодня, то ты определенно — счастливчик. За последние годы Android значительно повзрослел и избавился от множества детских болезней. Информации по платформе более чем достаточно. Я же расскажу о самых важных ресурсах.

Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
Читать дальше →
Всего голосов 133: ↑128 и ↓5+123
Комментарии33

Полезные советы новичкам в дизайне под Android

Время на прочтение3 мин
Количество просмотров171K
Этот пост послужит своеобразным началом серии публикаций на тему «как я учусь дизайну под Android». Никогда не уделял гайдлайнам достаточно внимания, считая их скучными и неинтересными, но все изменилось. Сейчас я начинаю понимать, платформа достигла своей зрелости и предлагает ряд интересных решений.
Читать дальше →
Всего голосов 64: ↑50 и ↓14+36
Комментарии47

Съемка Time Lapse видео под Android

Время на прочтение27 мин
Количество просмотров33K
imageДавайте напишем программу для создания своих собственных фильмов в технике Time Lapse. Завораживающее видео, снятое в этой технике с борта МКС, можно посмотреть здесь, более доступный вариант, который можно повторить с помощью описываемой программы — здесь.

Программа имеет простой интерфейс и несложный принцип работы:
• пользователь задает периодичность снимков встроенной камерой (например, 10 с) и желаемую частоту кадров генерируемого видео (например, 25 кадров в секунду);
• после нажатия кнопки «Старт»  программа каждые 10 секунд делает фотографию и записывает jpg-файл на SD-карту;
• процедура повторяется до нажатия кнопки «Стоп» и «Создать видео», после чего последовательность фотографий превращается в видео файл формата Motion JPEG, который показывает отснятый материал в 250 раз (25 * 10) быстрее реальной скорости происходивших событий.

В программе два основных класса — MainActivity, занимающийся взаимодействием с пользователем и накоплением снимков и MJPEGGenerator, ответственный за превращение последовательности изображений в видео файл.

Класс MJPEGGenerator, взятый с code.google.com, был слегка переделан в связи с тем, что в Android Java отсутствует пакет java.awt.

Процедуры работы с камерой были преимущественно взяты из материала Работа с камерой в Android, где есть хорошее описание примененных решений, проблема «залипаний» камеры после лока/анлока Android-устройства была устранена благодаря stackoverflow.

Программа была отлажена на планшете Prestigio MultiPad 7.0 Prime под Android 4.0.

Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии15

Несколько вопросов по .NET и C# (ответы с разбором)

Время на прочтение4 мин
Количество просмотров132K
На минувших выходных я запустил пост «Несколько вопросов по .NET и C#»

Я думаю многим интересно не только найти правильные ответы, но и узнать какая часть пользователей знает эти правильные ответы. Именно с этой целью и создавался этот пост.

Я не настаиваю на истинности объяснений в последней инстанции, поэтому конструктивная критика, дополнения и уточнения приветствуются.



Обещанные ответы с разбором под катом.

Читать дальше →
Всего голосов 48: ↑42 и ↓6+36
Комментарии37

Flat UI — бесплатный набор плоских элементов веб-интерфейса [обновлено]

Время на прочтение1 мин
Количество просмотров85K
Компания Designmodo, специализирующаяся на разработке веб-интерфейсов, опубликовала на Гитхабе довольно внушительный набор модных сегодня плоских элементов интерфейса — меню, кнопок, слайдеров, переключателей, чекбоксов, иконок и многого другого. Плоский дизайн интерфейсов активно продвигает Microsoft, и он всё чаще и чаще встречается в сети.

Можно спорить о преимуществах и недостатках такого дизайна, но игнорировать его нельзя — мода есть мода, так что этому набору наверняка найдётся место в колллекции большинства веб-дизайнеров. Кроме файлов изображений и стилей, набор включает шрифт Lato польского дизайнера Лукаша Джеджича и подобранные дизайнерами образцы цветовых сочетаний. Демо Flat-UI можно посмотреть здесь.

UPD: в данный момент доступ к репозиторию Flat UI закрыт по требованию компании LayerVault, которая считает, что Designmodo нарушила её авторские права. В Designmodo отрицают какое-либо заимствование и утверждают, что Flat UI — полностью оригинальная разработка.
Читать дальше →
Всего голосов 108: ↑90 и ↓18+72
Комментарии44

Теория относительности в картинках

Время на прочтение6 мин
Количество просмотров367K
В своей статье я хотел бы рассказать о теории относительности. Эта теория не требуется в представлении. С самого своего создания она была окутана ореолом тайны, поскольку полностью подрывает наши привычные представления о пространстве и времени. Все мы в школе учили формулы теории относительности, но мало кто действительно понимал их. И это не удивительно, ведь человеку, чтобы по-настоящему понять какую-то теорию во всей её красоте, полноте и непротиворечивости, не достаточно знать формулы. Нужно иметь какой-то визуальный ориентир, нужна динамика, чтобы было что-то, что можно повертеть в руках. Я решил восполнить этот пробел и написал небольшую программку, в которой можно «повертеть в руках» пространство-время. Мы, как настоящие исследователи, с помощью небольших экспериментов попытаемся выяснить основные свойства этой загадочной материи.
Под катом много картинок (и ни одной формулы).
Читать дальше →
Всего голосов 272: ↑266 и ↓6+260
Комментарии345

Дао разработки справочной документации для IT-продукта

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

image
Привет!

Любите читать хелпы? А писать? Думаю, что 99% из вас ответят “НЕТ”.

Но от создания справки никуда не денешься, ведь справка является обязательным средством общения с пользователем. А чтобы создание хелпов не оказалось чем-то сложным, неуправляемым и непонятным, необходимо построить чёткий и отлаженный процесс.

В этой статье я бы хотел поделиться нашим опытом и описать процесс создания справочной документации, который мы используем в Alconost.

Читать дальше →
Всего голосов 27: ↑21 и ↓6+15
Комментарии12

Сервис поиска комплектующих для коптеров и не только

Время на прочтение1 мин
Количество просмотров10K
Собирая квадрокоптер столкнулся с проблемой: выбор комплектующих огромный, а вот поиск по ним никудышный.
В свободное от работы время потихоньку клепаю поисковик по комплектующим: www.rcdetails.info
Сейчас БД уже содержит информацию о товарах с hobbyking.com, goodluckbuy и towerhobbies:
  • более 800 бесколлекторных моторов;
  • более 300 ДВС;
  • примерно 400 регуляторов для бесколлекторных моторов;
  • более 1300 литиевых аккумуляторов;
  • почти 800 сервоприводов;
  • почти 1000 винтов;


Читать дальше →
Всего голосов 80: ↑78 и ↓2+76
Комментарии32

Комплект разработчика на базе MSP430 от Texas Instruments

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

Texas Instruments продолжает приятно удивлять


У меня хорошая новость для тех, кто чувствует в себе инженерные наклонности но до сих пор не знал с чего начать. И пусть для кого-то это уже не в новинку, но для всех остальных умов я хотел бы донести. Компания Texas Instruments продолжает «подсаживать» на свои продукты, и на этот раз в фокусе нашего внимания будет MSP430 Value Line LaunchPad Development Tool. Не так уж и давно вышла версия 1.5 этого комплекта разработчика на базе микроконтроллеров серии MSP430. Приглашаю под кат за подробностями и сюрпризами
Читать дальше →
Всего голосов 8: ↑5 и ↓3+2
Комментарии10

Возможность тестировать steam for linux beta без инвайта от valve

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


Сегодня стартовало бета тестирование игрового сервиса от Valve для ОС линукс. Есть бинарные пакеты под Ubuntu (должно работать 12.04 и 12.10) и AUR пакеты под Archlinux.
Читать дальше →
Всего голосов 58: ↑45 и ↓13+32
Комментарии76

Как преуспеть со своим мобильным приложением

Время на прочтение16 мин
Количество просмотров36K
Большинство приложений провальны. Эта жестокая реальность приводит многих разочарованных разработчиков к заключению, часто подсознательному, что преуспевание в App Store — всё равно, что разбогатеть на «золотой лихорадке»: нужно быть чертовски удачливым.

image

Идея «удачи» — опасное успокоительное средство, облегчающее боль неудачи. А боль — это хорошая вещь. Она показывает, что что-то идёт не так. Если моё приложение потерпело крах, я хочу знать почему. Вместо того, чтобы обвинять мироздание, почему бы не посмотреть, что ребята из tap tap tap и Tapbots делают для того, чтобы снова и снова достигать успеха.

Несмотря на то, что безупречное следование этой формуле невозможно, работа в этом направлении резко увеличит ваши шансы на успех. Эти принципы выработаны для iOS, но многие из них могут быть применены и для других платформ.
Читать дальше →
Всего голосов 65: ↑54 и ↓11+43
Комментарии9

Ядерный реактор – дома с нуля

Время на прочтение4 мин
Количество просмотров431K
Некоторое время назад я публиковал статью о самодельных микропроцессорах, сегодня же мы затронем более сложную и щекотливую тему (особенно в свете событий на Фокусиме) – создание ядерного реактора, способного генерировать энергию в домашних условиях. И перед тем как вы начнете волноваться, вспоминая о негативных опытах в прошлом (см. Радиоактивный бойскаут – наковырявший прилично амерция-241 из детекторов дыма) заранее скажу, что все что описано в этой статье – относительно безопасно (по крайней мере не опаснее работы с фтороводородной кислотой дома), но крайне не рекомендуется к повторению. Перед любыми действиями проконсультируйтесь со своим адвокатом — законы разные в разных странах. Много кто уже сидит.
Читать дальше →
Всего голосов 338: ↑319 и ↓19+300
Комментарии201

Переводим книги с помощью Яндекс.API

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

Зачем это надо


Однажды мне пришло в голову прочитать одну книгу на родном языке автора, английском. После прочтения нескольких страниц стало понятно, что читать придется долго, так как за каждым незнакомым словом приходилось тянуться за словарем, искать нужную страницу, ломать глаза о множество других слов, похожих на искомое… Да еще и таскать с собой лишних полтысячи страниц. Вот и вздумалось собрать небольшой словарик, именно под эту книгу, в который можно было бы заглянуть в любой ситуации — даже когда нет доступа в Интернет.

Что из этого получится


На выходе мы получим самый обычный .txt — файл, в котором на каждой строчке по алфавиту будут размещены редкие слова из книги и их перевод. Такой словарик можно легко встроить, например, в MIDlet для мобильного телефона, или же непосредственно на сайт.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии19

Почему стоит пользоваться PDO для работы с базой данных

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

Перевод статьи Why you Should be using PHP’s PDO for Database Access.

Множество PHP-разработчиков привыкли использовать для работы с базами данных расширения mysql и mysqli. Но с версии 5.1 в PHP существует более удобный способ — PHP Data Objects. Этот класс, сокращенно именуемый PDO, предоставляет методы для работы с объектами и prepared statements, которые заметно повысят вашу продуктивность!

Введение в PDO


«PDO – PHP Data Objects – это прослойка, которая предлагает универсальный способ работы с несколькими базами данных.»

Заботу об особенностях синтаксиса различных СУБД она оставляет разработчику, но делает процесс переключения между платформами гораздо менее болезненным. Нередко для этого требуется лишь изменить строку подключения к базе данных.

Эта статья написана для людей, которые пользуются mysql и mysqli, чтобы помочь им в переходе на более мощный и гибкий PDO.
Читать дальше →
Всего голосов 127: ↑115 и ↓12+103
Комментарии165

Изучение иностранных языков: живые учителя или интернет?

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


— Феденька, ты очень интеллигентный мальчик, ты мне очень нравишься, но Я БУДУ СТАВИТЬ ДВА В ГОДУ!!! — визжала моя школьная учительница по французскому и делала примерно такое лицо.

Моя школьная учительница по английскому языку делала другое лицо:
Читать дальше →
Всего голосов 282: ↑232 и ↓50+182
Комментарии366

Практические советы тем, кто решил продавать через купонаторы

Время на прочтение3 мин
Количество просмотров46K
Как только вам пришла мысль продавать что-то из товаров через скидочные сервисы, они же «купонаторы» (групон, выгода, биглион, бигбаззи, купикупон и т.д.), поддавшись влиянию соблазнительной статистикой продаж других участников и привлекательному описанию грядущих многотысячных продаж с первого же дня размещения вашей акции – отвлекитесь от возникших в вашем воображении золотых гор и отодвиньте калькулятор.

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

Читать дальше →
Всего голосов 75: ↑53 и ↓22+31
Комментарии78

Андроид живые обои. Как делать?

Время на прочтение5 мин
Количество просмотров105K
Независимо от того, какие обои вы задумали сделать, существуют 2 различных подхода к реализации ваших задумок: SGL (в дальнейшем Canvas) и OpenGL. Когда я создавал свои первые обои у меня ушло несколько дней, чтобы попробовать различные средства и методы, поэтому эта статья сэкономит вам немного времени и быстро введет вас в курс дел.
Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии22
1

Информация

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