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



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

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

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

      Этот код ужасен. Во-первых, нет никого, кто мог бы сказать, зачем этот код писался. Во-вторых, нет никакой документации. Нет даже комментариев, не говоря уже о юнит-тестах. В-третьих, код не структурирован, а имена классов и методов ни о чём не говорят. И, наконец, работать это должно начать не сегодня, и даже не вчера, а внезапно.
      Ну как, %habrausername%, пробежал холодок по спине?
      Читать дальше →
    • IT AS IS



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



          Сейчас, пока я пишу этот текст, мои руки дрожат, а мысли путаются. Уже утро, а я всё не могу отойти от того, что я увидел и узнал в эту ночь.
          Часто приходится слышать, что люди хотят встретить новый год необычно, так, чтобы он запомнился надолго. Если спросить меня, то я бы предпочёл ничего не помнить. Провести эти несколько часов так же, как и все мои сограждане, в обнимку с оливье и алкогольными напитками, спокойно и привычно.
          Но обо всём по порядку. Хотя, повторюсь, связное изложение мне сейчас даётся с трудом.
          Читать дальше →
        • Маленькая хитрость для отображения большого объёма данных в ListView

          • Tutorial


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

          Проблема


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


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



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

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

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

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

            Как же поступят наши программисты?
            Читать дальше →
          • КАД: все арбитражные суды России в одном Android-устройстве



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



                Selloby — это сервис частных объявлений в стиле Твиттера и наш самый первый проект под Android. Несмотря на сравнительно небольшой объём кода (чуть более 8 KLOC), в процессе реализации проекта Selloby мы опробовали ряд техник и методологий, которые пригодились в дальнейшей работе. Также Selloby дал нам возможность почувствовать, пускай и в миниатюре, как устроен Твиттер, что, помимо саморазвития, добавило интереса нашей работе.
                Читать дальше →
              • СПС «Право.ru» для Android — как это было



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

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

                  Читать дальше →
                • Как мы в Parcsis разрабатываем программы под Android



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

                    Конечно, начать рассказ о разработке ПО следует с описания бизнес-процессов. Итак, начнем!
                    Читать дальше →