• CodeRush for Roslyn: Part 1 — полезные фичи для разработки через тестирование

      Мы выпускаем новый продукт — CodeRush for Roslyn (далее CRR). Уже более 10 лет у нас есть другой продукт, который называется просто CodeRush, или CodeRush Classic (сокращенно CRC). Главное отличие CRR от CRC в том, что Roslyn-версия использует парсинг и языковые сервисы встроенные в Visual Studio. CRR полностью написан с нуля, поэтому он быстрый, легкий и уже содержит всё необходимое для эффективной работы.

      В этой статье я расскажу о поддержке тестовых фреймворков в CRR. Почти во всех примерах будет использован проект github.com/dewe/Money. Этот проект использует NUnit Framework, но мы так же поддерживаем xUnit, MSpec и MS Test Framework. Все рассмотренные ниже практики работают одинаково вне зависимости от того, какой тестовый фреймворк вы используете.
      Читать дальше →
    • Опасный target="_blank"

        Большинство создают внешние ссылки через target="_blank" и не знают одного интересного нюанса — страница, на которую мы попадем таким образом, получит частичный контроль над ссылающейся на нее страницей через js свойство window.opener.

        Через window.opener.location мы сможем сделать редирект на, к примеру, фишинговую страницу. Это своего рода tabnabbing, только более продвинутый. Так как жертва меньше всего ожидает подмены страницы, в открытой ранее, доверенной вкладке браузера.
        Читать дальше →
      • Регистрация безналоговой компании в Эстонии

        «Платить налоги – обязанность, платить мало налогов – искусство! » (с)

        Хочу поделиться опытом успешной регистрации компании в Эстонии. Я приведу короткую характеристику юрисдикции, расскажу про подводные камни, которые существуют, и поделюсь полученным опытом.

        Задача стояла следующая — найти юрисдикцию, в которой не нужно платить налог на прибыль, при этом клиентам из США, Канады и ЕС удобно было с ней работать. Реальный офис открывать в этой стране задачи не стояло.

        Основная деятельность компании — разработка ПО (классическая аутсорс компания со штатом ~20 девелоперов).
        Читать дальше →
      • PMM Summer School: Как пройти школу маркетинга софтверных продуктов и остаться гиком?

          image

          Недавно в Санкт-Петербурге закончилась летняя школа по маркетингу софтверных продуктов (PMM summer school) от JetBrains, о которой уже упоминали здесь и здесь. Чернила еще не высохли, лекции еще не забылись, а организаторы еще не выспались, но спешу поделиться впечатлениями о маркетинге, продуктах, школе PMM и JetBrains. Холивар про маркетинг неисчерпаем, поэтому добро пожаловать под <cut/>!
          Читать дальше →
          • +10
          • 3,1k
          • 1
        • DDoS атака в обход Qrator. Как защититься?

            Есть сервисы, защищающие нас от DDoS атак. Они работают по принципу прокси: в DNS прописывается их IP, они фильтруют трафик и проксируют на ваш сервер. Все они настоятельно рекомендуют прятать свой IP и в публичном доступе давать только IP прокси-защитника. Вполне здравый подход, достаточный для успешной защиты. А я расскажу на чем можно проколоться и как от этого защитится.
            Читать дальше →
          • Как правильно переходить границу: кроссплатформенность в мобильном приложении

              image
              Сегодня все больше приложений создается сразу для нескольких мобильных платформ, а приложения, созданные изначально для одной платформы, активно портируются на другие. Теоретически можно полностью писать приложение «с нуля» для каждой платформы (т.е. фактически «кроссплатформенной» оказывается только идея приложения). Но это означает, что трудозатраты на его разработку и развитие будут расти пропорционально количеству поддерживаемых платформ. Если же многоплатформенность изначально заложить в архитектуру приложения, то эти затраты (плюс, в особенности, затраты на поддержку) могут существенно сократиться. Вы разрабатываете общий кроссплатформенный код один раз — значит используете его на текущих (и будущих) платформах. Но в этом случае сразу возникает несколько взаимосвязанных вопросов:

              • Должна ли быть граница между общим (кроссплатформенным) и нативным (специфичным для данной платформы) кодом?
              • Если да, то где и как провести эту границу?
              • Как сделать так, чтобы кроссплатформенный код было удобно использовать на всех платформах, как на тех, что надо поддержать сейчас, так и на тех, чья поддержка, вероятно, может потребоваться в будущем?

              Конечно, ответы на эти вопросы зависят от конкретного приложения, предъявляемых к нему требований и накладываемых ограничений, поэтому универсальный ответ найти, по всей видимости, невозможно. В этой статье мы расскажем, как мы искали свои ответы на эти вопросы в процессе разработки мобильного клиента Parallels Access для iOS и Android, какие архитектурные решения были приняты и что в итоге получилось.

              Хочу сразу предупредить, что букв в этом посте много, но дробить тему на куски не хотелось. Поэтому запаситесь терпением.
              Читать дальше →
              • +24
              • 12,8k
              • 1
            • Организация и использование сегментации в больших мобильных приложениях

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

                Да, теперь стало гораздо страшнее нажимать кнопку «Submit», ведь если вы чего-то недоглядели — в отличии от веб-приложений не получится посидеть ночь, обложившись банками ред-булла и пиццами и все исправить — ревью на мобильных платформах занимает время, а если говорить про iOS — аж целую неделю. Неделя — более чем достаточный срок для того, чтобы лояльный ранее пользователь перестал открывать ваше приложение.

                А еще, что не менее важно, это значит, что наступило время, когда «мне нравится, как выглядит этот экран» — уже недостаточное оправдание для того, чтобы этот экран действительно присутствовал в приложении.



                В этой статье я постараюсь рассказать о том, что мы делаем, чтобы огромное продакшн-приложение продолжало оставаться таковым.
                Читать дальше →
              • Как защитить интересы сторон в договоре на создание ПО

                • Tutorial
                Сегодня мы рассмотрим основные вопросы, которые возникают на практике при согласовании условий договора на создание ПО. Понятно, что в целях защиты интересов заказчика или разработчика в договор могут вноситься различные положения, от которых зависит его фактическое исполнение и достигаемый результат.

                До начала обсуждения условий договора на разработку ПО необходимо определиться с его формой. В этом вам поможет предыдущий пост: «Как выбрать договор на разработку ПО». С формами договоров и пояснениями к ним можно ознакомиться здесь.

                После определения формы договора на разработку ПО стороны, как правило, волнуют три вопроса:
                1) Как оформить заказ на разработку ПО в упрощенном порядке?
                2) Какие права на ПО переходят заказчику и сохраняются у разработчика?
                3) Как документально оформить передачу заказчику прав на ПО?

                Ниже мы рассмотрим данные вопросы подробнее.
                Читать дальше →
              • 86 бесплатных площадок для продвижения стартапов на международном рынке

                • Перевод


                Мы дополнили и адаптировали оригинальную подборку, выбрав исключительно бесплатные ресурсы для продвижения стартапов на международном рынке. Помимо этого мы переработали первоначальную классификацию, ввели ранжирование по потенциальному охвату аудитории (для площадок с обозначенным охватом) и распределили соответствующие ресурсы в тематические категории.
                Читать дальше →
                • +31
                • 64,9k
                • 9
              • Больше возможностей с новой версией продуктов DevExpress 14.2

                  Близится конец года, а это значит, что настало время представления очередной версии продуктов от компании DevExpress. В этот релиз 14.2 мы постарались включить многие интересные и полезные возможности для наших пользователей. Поскольку все улучшения и нововведения описать в рамках одной статьи тяжело, их можно посмотреть вот здесь, а под катом мы рассмотрим лишь некоторые из них. Для тех, кто не хочет долго читать, вот этот небольшой ролик:


                  Читать дальше →