Как стать автором
Обновить
334
0

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

Весёлые (сосисочные) рефакторинги

Время на прочтение 2 мин
Количество просмотров 72K
Программирование *Java *Совершенный код *


Привет, %habrausername%. Я хочу сыграть с тобой в игру.

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

От предыдущего разработчика осталась кучка кода и домашние тапочки. Ты осторожно кладёшь тапочки в мусорную корзину и начинаешь рефакторинг.

Этот код ужасен. Во-первых, нет никого, кто мог бы сказать, зачем этот код писался. Во-вторых, нет никакой документации. Нет даже комментариев, не говоря уже о юнит-тестах. В-третьих, код не структурирован, а имена классов и методов ни о чём не говорят. И, наконец, работать это должно начать не сегодня, и даже не вчера, а внезапно.
Ну как, %habrausername%, пробежал холодок по спине?
Читать дальше →
Всего голосов 159: ↑144 и ↓15 +129
Комментарии 174

IT AS IS (итоги конкурса)

Время на прочтение 3 мин
Количество просмотров 5.2K
Я пиарюсь


Привет, Хабр!
Неделю назад я обещал, что выложу в свободный доступ свою книгу «IT AS IS» и подарю три экземпляра самым остроумным хабраюзером. Под катом результаты конкурса и ссылка для скачивания.
Читать дальше →
Всего голосов 27: ↑22 и ↓5 +17
Комментарии 11

IT AS IS

Время на прочтение 5 мин
Количество просмотров 15K
Я пиарюсь


Привет, Хабр!
Я автор нескольких рассказов, самый известный из которых — «Энергонезависимое решение». Меня много раз спрашивали, когда же я напишу книгу (раз, два, три и тд). Так вот, я её написал. Под катом будет история создания, благодарности и конкурс. А в самом конце — ссылки для покупки бумажной версии и анонс версии бесплатной электронной.
Читать дальше →
Всего голосов 85: ↑78 и ↓7 +71
Комментарии 49

Как я встретил новый год

Время на прочтение 7 мин
Количество просмотров 118K
Я пиарюсь


Сейчас, пока я пишу этот текст, мои руки дрожат, а мысли путаются. Уже утро, а я всё не могу отойти от того, что я увидел и узнал в эту ночь.
Часто приходится слышать, что люди хотят встретить новый год необычно, так, чтобы он запомнился надолго. Если спросить меня, то я бы предпочёл ничего не помнить. Провести эти несколько часов так же, как и все мои сограждане, в обнимку с оливье и алкогольными напитками, спокойно и привычно.
Но обо всём по порядку. Хотя, повторюсь, связное изложение мне сейчас даётся с трудом.
Читать дальше →
Всего голосов 318: ↑241 и ↓77 +164
Комментарии 213

От кассет до онлайн-стриминга

Время на прочтение 3 мин
Количество просмотров 14K
Блог компании ASUS


Недавно, убираясь дома, я обнаружил коробку со старыми аудиокассетами. Вот она, на фото. Я специально применил эффект ломографии, чтобы подчеркнуть те чувства, которые вызвала у меня эта находка.
В данной статье мне хотелось бы вспомнить, с помощью чего мы слушали музыку, какими были плееры, а заодно и пофантазировать о направлении их эволюции.
Читать дальше →
Всего голосов 14: ↑7 и ↓7 0
Комментарии 10

Маленькая хитрость для отображения большого объёма данных в ListView

Время на прочтение 4 мин
Количество просмотров 40K
Разработка под Android *
Туториал


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

Проблема


Стандартный механизм отображения списков из базы данных в Android выглядит примерно так:
  • Activity содержит ListView
  • ListView обращается к экземпляру CursorAdapter
  • CursorAdapter получает данные из объекта, реализующего интерфейс Cursor
  • Cursor получен либо из ContentProvider, либо сразу из SQLiteDatabase


Всё работает нормально ровно да тех пор, пока количество строк в Cursor сравнительно небольшое. Но если в нём 50 тысяч, 100 тысяч и более строк (хотя дело не только в количестве строк, но об этом чуть позже), время от времени список будет притормаживать. Особенно это заметно при «быстрой прокрутке», если у ListView установлено в true свойство fastScrollEnabled.
Читать дальше →
Всего голосов 49: ↑46 и ↓3 +43
Комментарии 26

Как два программиста хлеб пекли

Время на прочтение 5 мин
Количество просмотров 254K
Программирование *ООП *


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

Итак, представим себе, что есть два программиста. Один из них умный, прочёл кучу статей на Хабре, знает каталог GoF наизусть, а Фаулера — в лицо. Другой же делает всё просто. Первого будут звать, например, Борис Н., а второго — Маркус П. Само собой, имена вымышленные, и все совпадения с реальными людьми и программистами случайны.

Итак, к ним обоим приходит проектный менеджер (если в вашей вселенной PM не ходит сам к программистам, назовите его как-то иначе, например BA или lead, сути это не изменит) и говорит:
— Ребята, нам нужно, чтобы делался хлеб.

Именно так, «делался», без уточнения способа производства.

Как же поступят наши программисты?
Читать дальше →
Всего голосов 380: ↑348 и ↓32 +316
Комментарии 327

КАД: все арбитражные суды России в одном Android-устройстве

Время на прочтение 3 мин
Количество просмотров 11K
Блог компании Фестиваль 404 Разработка под Android *


Картотека арбитражных дел — ещё один проект компании Parcsis, для которого был создан клиент под ОС Android. Это третий по счёту проект, и в нём был учтён весь имевшийся на тот момент опыт разработки Selloby и СПС.
Читать дальше →
Всего голосов 25: ↑19 и ↓6 +13
Комментарии 7

Selloby: как мы делали слонов под Android

Время на прочтение 3 мин
Количество просмотров 8.5K
Блог компании Фестиваль 404 Разработка под Android *


Selloby — это сервис частных объявлений в стиле Твиттера и наш самый первый проект под Android. Несмотря на сравнительно небольшой объём кода (чуть более 8 KLOC), в процессе реализации проекта Selloby мы опробовали ряд техник и методологий, которые пригодились в дальнейшей работе. Также Selloby дал нам возможность почувствовать, пускай и в миниатюре, как устроен Твиттер, что, помимо саморазвития, добавило интереса нашей работе.
Читать дальше →
Всего голосов 35: ↑24 и ↓11 +13
Комментарии 36

СПС «Право.ru» для Android — как это было

Время на прочтение 4 мин
Количество просмотров 5.1K
Блог компании Фестиваль 404 Разработка под Android *


Почти год назад, а именно 12 сентября 2011 года, мы выложили на Google Play тогда ещё Android Market клиент для справочно-правовой системы «Право.ru». Этот проект был первым крупным приложением от компании Parcsis под ОС Android. Забегая вперёд, скажу, что разработка шла совсем не так гладко, как хотелось бы. Далеко не все идеи, предложенные дизайнерами, удалось воплотить, да и не все инженерные решения удовлетворяли требованиям бизнеса. Android преподнёс нам немало неожиданностей.

Но, тем не менее, благодаря сплочённости и самоотверженности команды, мы прошли этот путь длиной более чем в год, выпустив и поддерживая продукт, входящий в ТОП-10 бесплатных приложений в категории «Бизнес».

Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 13

Десктоп – давай, до свидания!

Время на прочтение 6 мин
Количество просмотров 49K
Блог компании ASUS


Мы живём в удивительное время. На наших глазах происходит революция — на смену громоздким настольным компьютерам и тяжёлым ноутбукам приходят мобильные устройства — планшеты и телефоны. Область применения этих устройств постоянно растёт. Сейчас планшеты используются, в основном, для работы с электронной почтой и новостными лентами, а так же для общения в социальных сетях, чтения книг и просмотра видео. Назначение телефонов примерно тоже, плюс звонки и смс. Вообще говоря, грань между телефоном и планшетом весьма условна, и существует она больше в сознании покупателей и в прайс-листах компьютерных магазинов. В реальности же имеет место целый класс устройств, которые нельзя однозначно отнести ни к планшетам, ни к телефонам. Например, PadFone или Eee Pad MeMO 171. Поэтому вместо «телефон» или «планшет» лучше говорить «мобильное устройство».

Вопрос, которым я хотел бы задаться — могут ли мобильные устройства полностью заменить рабочие станции для IT-специалистов? Можно ли с помощью одного только планшета разрабатывать сайты, сервисы и приложения для этих же планшетов? И я уверенно отвечаю — да можно. И если не сейчас, то в ближайшем времени такая возможность однозначно будет. В этой статье я постараюсь обосновать свою точку зрения.
Читать дальше →
Всего голосов 67: ↑22 и ↓45 -23
Комментарии 82

ООП. Неспешная беседа возле кулера

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


Юрий Моисеевич (ЮМ) — невысокий, гладко выбритый молодой человек лет сорока пяти, всё ещё подающий надежды. Имеет горделивый изгиб спины и маслянистый взгляд. Говорит тихо, почти шепчет.
Михаил Валерьевич (МВ) — широкоплеч и пузат, с окладистой кучерявой бородой. Говорит зычным, густым басом. Являясь признанным профессионалом, невольно вызывает уважение сам у себя.

Офисная кухня: небольшая каморка без окон, в центре стоит пластмассовый стол, в углу — кулер с водой, вдоль стен — табуретки. Около кулера затаился Юрий Моисеевич. На кухню заходит Михаил Валерьевич, чтобы попить воды. В правой руке он несёт чашку.

ЮМ (преграждая дорогу к кулеру, заискивающе): — Позвольте поинтересоваться!
МВ (учтиво кланяясь): — Прошу вас, Юрий Моисеевич, я всецело к вашим услугам.
ЮМ: — Не поведаете ли вы мне, любезный друг, о тонкостях своей столь нелёгкой работы?
МВ: — С превеликим удовольствием. Но моя работа столь многогранна, и, как вы сейчас верно заметили, столь нелегка, что я, право же, не знаю, с чего начать.
ЮМ: — А начните, пожалуй, с самых, так сказать, основ. Поведайте, какие технологии вы используете?
Читать дальше →
Всего голосов 167: ↑103 и ↓64 +39
Комментарии 36

Устройство интернетов

Время на прочтение 8 мин
Количество просмотров 19K
Профессиональная литература *


— Значит нам нужно какое-то автоматизированное средство для создания скриншотов, — голос генерального директора был, как всегда, спокоен и твёрд. По всему было видно, что за такое автоматизированное средство он был готов бороться до конца, — когда найдёшь — наделай картинок и встать в макет каталога. Времени тебе даю до 4 часов, потом лично проверю.

— Оки, задачу понял. Уже делаю — ответил я. Работа системного администратора в небольшой фирме, занимающейся продажей котельного оборудования, включает в себя множество дисциплин. Вёрстка макетов — одна из них. Недавно директор увидел какую-то софтину, строящую в реальном времени графики по данным с датчиков на котлах, и захотел, чтобы эти графики были включены в каталог с нашим оборудованием. И не просто включены, а в динамике, чтобы показать эффективность работы разных котлов под разной нагрузкой. Сначала директор сам хотел наделать скриншотов, но обнаружил, что данные слишком быстро обновляются, поэтому делегировал эту ответственную задачу мне.

Открыв любимый поисковик, я хотел было уже ввести «автоматизированное создание скриншотов», как вдруг моё внимание привлёк новый элемент управления на этой странице. Вообще, главная страница этой поисковой системы настолько минималистична, что каждое её изменение, даже на пару пикселей, сразу бросается в глаза. А сейчас там под строкой поиска появилось самое настоящее окно чата. Внизу вертелась анимированная иконка с изображением карандаша, символизирующая, должно быть, то, что собеседник пишет мне сообщение. Через пару секунд анимация исчезла, и в окне чата появилась надпись: «привет как дела».
Читать дальше →
Всего голосов 185: ↑146 и ↓39 +107
Комментарии 97

Как мы в Parcsis разрабатываем программы под Android

Время на прочтение 5 мин
Количество просмотров 24K
Блог компании Фестиваль 404 Разработка под Android *


21 июня у нас в Parcsis состоялся день открытых дверей, на котором я в числе прочих докладчиков рассказал, как мы разрабатываем программы под Android. Под катом текст моего выступления, несколько дополненный и переработанный с учётом заданных вопросов.

Конечно, начать рассказ о разработке ПО следует с описания бизнес-процессов. Итак, начнем!
Читать дальше →
Всего голосов 61: ↑46 и ↓15 +31
Комментарии 44

Энергонезависимое решение

Время на прочтение 10 мин
Количество просмотров 119K
Профессиональная литература *


Понедельник. Постановка задачи


Девять часов тридцать одна минута утра — я на работе. Вообще-то мы работаем с десяти до семи, но по понедельникам я предпочитаю приходить пораньше — мне нравится наш офис, пока в нём нет людей. Я медленно иду мимо столов — одни завалены распечатками спецификаций и каких-то диаграмм, другие совсем пустые. На одних столах стоят компьютеры, другие пустые. Под некоторыми столами стоит сменная обувь, перед другими нет даже кресла. Да, у нас больше половины столов пустые — это на случай приёма новых сотрудников, или командировки кого-то из других городов и стран. Ведь у нас крупная международная компания с офисами разработки в Омске и Калачинске и головным офисом на Кипре. Мы занимаем четыре этажа в современном офисном центре. Правда, сразу за нашим зданием начинаются руины какого-то авиационного завода, и в день зарплаты мы стараемся там не ходить.
Читать дальше →
Всего голосов 371: ↑359 и ↓12 +347
Комментарии 148

Два способа разработки программного обеспечения, или Одна ночь из жизни программиста Миши

Время на прочтение 9 мин
Количество просмотров 52K
Профессиональная литература *


«Две тропинки идут рядом: путь жизни и путь смерти… Люди не идут никаким путём, ни путём жизни, ни путем смерти. Вихрь носит их, как солому.»
Густав Майринк, «Голем»

В офисе было тихо и темно, лишь стук клавиш и редкие щелчки мыши нарушали едва различимое жужжание кулера, да широкоформатный монитор освещал измождённое лицо regular developer'а Миши. Сторонний наблюдатель мог бы подумать, что идёт обычная рабочая ночь с пятницы на субботу. Так оно и было для тысяч других разработчиков по всему миру, но только не для Миши. Поставив очередную пустую бутылку под стол, он внезапно почувствовал, что граница, отделяющая его от гордого титула «senior developer», не так уж и далека.

«Я встаю не раньше полудня, работаю до двух часов ночи и выпиваю за раз до трёх литров пива. Наверное, я становлюсь профессионалом», — подумал Миша, и в этот самый момент почувствовал на себе чей-то тяжёлый взгляд. То, что он увидел, подняв глаза от монитора, заставило его замереть от ужаса. Две фигуры в серых балахонах стояли по обоим сторонам его стола. Лица, скрытые низко надвинутыми капюшонами, смотрели сурово, и в то же время безразлично. Страшно было пошевелить хотя бы пальцем или вздохнуть, а сознание отчаянно отказывалось верить в реальность происходящего — ведь Миша узнал этих двоих. Старшие коллеги рассказывали ему, что всякий раз, когда кто-нибудь подбирается к мистической грани между простым разработчиком и старшим, к нему приходят эти двое, чтобы посвятить в свои мрачные тайны.

Миша сглотнул и тихо спросил дрожащим голосом:

— Тим-лид Коля? Проджект-менеджер Изя? Рабочий день уже давно закончился, что вы здесь делаете? И к чему весь этот маскарад?
Читать дальше →
Всего голосов 258: ↑228 и ↓30 +198
Комментарии 87

Архитектура Android-приложений. Часть IV — интеграционный уровень

Время на прочтение 5 мин
Количество просмотров 33K
Разработка под Android *
Перевод
В этой статье мы поговорим о различных механизмах, посредством которых взаимодействуют части Android-приложений. Условимся называть все эти механизмы «уровнем взаимодействия» (насколько мне известно, в документации Android нет специального термина для этого).
Читать дальше →
Всего голосов 43: ↑39 и ↓4 +35
Комментарии 5

Архитектура Android-приложений. Часть III — основные части приложения

Время на прочтение 7 мин
Количество просмотров 67K
Разработка под Android *
Перевод
Итак, мы уже говорили о происхождении архитектуры ОС Android и о шаблонах, реализованных в этой архитектуре. Теперь настала пора поговорить о том, из чего состоит Android-приложение.

В этой статье будут представлены основные «персонажи» архитектуры Android-приложения.
Читать дальше →
Всего голосов 58: ↑54 и ↓4 +50
Комментарии 7

Архитектура Android-приложений. Часть II — архитектурные стили и шаблоны

Время на прочтение 5 мин
Количество просмотров 42K
Разработка под Android *
Перевод
В этой статье мы поговорим об архитектурных шаблонах, используемых в Android-приложениях.

Почему важно понимание шаблонов, реализованных в рамках некой архитектуры? Потому что таким образом изучаемая нами новая архитектура укладывается в контекст нашего предыдущего опыта и позволяет нам более эффективно использовать накопленные знания и навыки.

Возможно, я плохо искал, но в документации Android нет упоминания о каких-либо шаблонах. Не смотря на это, в Android реализованы некоторые шаблоны и архитектурные стили, о которых мы сейчас и поговорим.
Читать дальше →
Всего голосов 68: ↑58 и ↓10 +48
Комментарии 12

Архитектура Android-приложений. Часть I — истоки

Время на прочтение 8 мин
Количество просмотров 108K
Разработка под Android *
Перевод
В этой статье мы рассмотрим архитектуру Android-приложений.

Откровенно говоря, официальную статью Google по этой теме я считаю не очень полезной. Детально отвечая на вопрос «как», она совсем не объясняет «что» и «почему». Итак, вот моя версия, и, я надеюсь, она внесёт некоторую ясность. Да, кстати, я полностью одобряю чтение статей Google, поскольку они содержат полезную информацию, повторять которую я не собираюсь.
Читать дальше →
Всего голосов 86: ↑80 и ↓6 +74
Комментарии 53
1

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность