Привіт, Хабр!


Минулого тижня ми випустили нову версію Upsource 2017.1 — перше велике оновлення в цьому році. У нову версію увійшло безліч нових функцій, ряд поліпшень в частині юзабіліті і не тільки. Тепер до ваших послуг крос-проектний текстовий пошук, браузерні повідомлення, відстеження прогресу рев'ю, підтримка squash/rebase, нові воркфлоу, базова підтримку GitLab і багато іншого!

Подивіться стислий огляд нової версії англійською мовою:



Читати далі →

Як ми вже 4 роки виживаємо в умовах двох релізів в день



Здрастуй, Хабр! Сьогодні я хочу завершити цикл статей про організацію тестування (почався з вивчення помилок і досвіду), розповівши про те, як же все-таки Badoo випускає два якісних серверних релізу кожен день. Крім п'ятниці, коли ми релизимся тільки вранці. Не треба релизиться в п'ятницю ввечері.
Я прийшов до Badoo трохи більше чотирьох років тому. Весь цей час наші процеси та інструменти для тестування невпинно розвивалися і вдосконалювалися. Для чого? Число розробників і тестувальників збільшилася приблизно в два рази — значить, для кожного релізу готується більше завдань. Кількість активних зареєстрованих користувачів і теж подвоїлася — а значить, і ціна будь-якої нашої помилки стала вище. Для того щоб доставляти користувачам максимально якісний продукт, нам потрібні все більш і більш потужні засоби контролю якості, і ця гонка не закінчується ніколи. Мета цієї статті-не тільки продемонструвати працюючий приклад, але й показати, що якими б крутими не були ваші процеси контролю якості, напевно можна зробити їх ще краще. Технічні реалізації деяких інструментів ви зможете знайти за посиланнями на інші статті, про деяких з них нам ще належить написати.

В Badoo існує кілька різних QA-флоу, відмінність яких обґрунтовано різними засобами розробки та цільовими платформами (але ми використовуємо для них загальні системи: JIRA, TeamCity, Git і т. д.), і я вам розкажу про процес тестування і деплоя наших серверних завдань (а заодно і веб-сайту). Його можна умовно розділити на 5 великих етапів (хоча тут, звичайно, багато моїх колег вважають по-різному), кожен з яких включає в себе і ручну, і автоматизовану складову. Постараюся розповісти вам по черзі кожного з них, окремо виділяючи те, що змінювалося і розвивалося в останні роки.

Читати далі →

JetBrains Night в Москві. Відео. Інтеграція серверних продуктів JetBrains один з одним

29 вересня в Москві відбулася міні-конференція JetBrains Night: 7 годин розробники з JetBrains розповідали розробникам з інших компаній про те, що компанія робить, навіщо, і що буде робити далі, а потім відповідали на запитання, обговорювали спільні проблеми і взагалі ділилися досвідом (т. е. слухали, як розробники з інших компаній розповідають їм про те, що вони роблять і чому їм зручно або поки ще не дуже зручно робити це за допомогою того, що робить JetBrains).

На Хабре ми поступово публікуємо відео всіх доповідей, щоб можна було в коментарях обговорити те, що не встигли обговорити на JetBrains Night, особливо з тими, хто не зміг приїхати особисто.

попередньому пості Дмитро Жемеров розповідав про мову Kotlin (там досі триває помірно жива дискусія в коментарях).

Сьогодні Максим Мазін, team lead команд YouTrack і Hub, розповідає, як JetBrains пропонує інтегрувати свої продукти один з одним, а Валерія Андріанова, Product Marketing Manager в цих командах, показує нові Agile-дошки в YouTrack і пояснює, як можна вичавити з Agile-дощок все, що треба. По ходу справи колеги діляться і тим, як влаштована проектна робота в JetBrains.

Читати далі →

Вийшов Upsource 3.5 з численними змінами

Привіт, Хабр! Минулого тижня ми випустили нову версію нашого інструменту для code review і навігації по репозиториям, Upsource. Давайте подивимося, які зміни ми включили в цей реліз.

Оновлена сторінка проектів
Ми переосмислили домашню сторінку продукту і зробили її більш зручною як для тих компаній, у яких дюжина проектів, так і для тих, у кого рахунок проектів йде на сотні.

Крім цього, домашня сторінка в цілому стала більш інформативною – тепер ви можете відразу побачити не тільки проекти, додані у закладки, але і проекти з найбільшою активністю, нещодавно створені проекти та проекти, в яких ви берете участь.

image

Читати далі →

0b1001 шляхів вирішення завдання перекладу римських цифр

image

Привіт друзі. Ось вам простенька задачка. Як би ви переклали арабські цифри римські використовуючи Python? Щоправда, з однією умовою — цифри не можуть бути більше ніж 4000.

Я думаю це має бути просто, але дозвольте я вам покажу вам серію цікавих рішень і не тривіальних підходів:

Читати далі →

Я був просто зобов'язаний перевірити проект ICQ

PVS-Stusiop and ICQЯ не можу пройти повз відкритих джерел месенджера ICQ. Це культовий проект, і коли вихідні коди з'явилися на сайті GitHub, питання, коли ми перевіримо його з допомогою PVS-Studio, став лише питанням часу. Звичайно, у нас багато й інших цікавих проектів, що чекають перевірки. Наприклад, нещодавно ми перевірили GCC, GDB, Mono. Тепер, нарешті, черга дійшла і до ICQ.

ICQ
ICQ (від англ. I seek you) це централізована служба миттєвого обміну повідомленнями, в даний час належить інвестиційному фонду Mail.ru Group. Кількість користувачів ICQ знижується, але все одно це додаток дуже популярним і широко відоме серед IT-спільноти.

ICQ за мірками програмістів є маленьким проектом. Я нарахував у ньому 165 тисяч рядків коду. Для порівняння, голе ядро аналізатора PVS-Studio для аналізу C++ коду реалізується з допомогою 206 тисяч рядків коду. Голе C++ ядро аналізатора — це точно маленький проект.

З цікавого варто відзначити маленький відсоток коментарів. Утиліта SourceMonitor стверджує, що у вихідних кодах ICQ лише 1,7% рядків є коментарями.

Исходники ICQ доступні для скачування на сайті github: https://github.com/mailru/icqdesktop.

Читати далі →

Upsource 2.5: розумні email повідомлення, новий дизайн сторінок Review, поліпшення в IDE плагіні і багато іншого

Ми раді поділитися з Вами гарними новинами — сьогодні ми випустили нову версію Upsource, нашого інструменту для code review і навігації по репозиториям.

В цей раз ми повністю переосмислили і переробили UI сторінки code review, спираючись на відгуки, які ми отримали від наших користувачів. Нова сторінка review повинна бути істотно зручніше і швидше, особливо для review з великою кількістю змін.

image

Ми також зробили email повідомлення розумніші. Upsource більше не надсилає окреме повідомлення на кожну подію, що потребує Вашої уваги. Замість цього, повідомлення збираються в один email, щоб не захаращувати Ваш поштовий клієнт. Крім цього, ми додали можливість відповідати на коментарі прямо з поштового клієнта.

image

Читати далі →

Впроваджуємо StyleCop в MSBuild

Все частіше виникають задачі автоматизації різних процесів в рамках CI. Поковырявшись з MSBuild, я все більше переконуюся, що це досить потужний інструмент. При бажанні, їм багато чого можна зробити. Проте ні в рунеті вцілому, ні конкретно на хабре я не знайшов статей за нього і вирішив позаполнять цей пробіл у міру сил і наявності вільного часу.
Отже, сьогодні ми будемо готувати

StyleCop

Завдання: реалізувати тотальну примусову перевірку коду (C#) на відповідність правилам оформлення.

Умова: тотально, примусово. Тобто весь код, що потрапляє на збірку, повинен бути перевірений в обов'язковому порядку. У разі виявлення порушень — build error і вперед, рефакторіть.

Інструменти: StyleCop, MSBuild (TFS або TeamCity — неважливо).

Читати далі →

Як я навчився робити світ краще в HeadHunter

До того, як я прийшов у HeadHunter, я не знав, що таке code review. Я знав, що таке code approval — так було в однієї американської компанії, де я починав свою кар'єру, і де весь код в проекті проходив перед мудрими очима професора Фортрану за столиком у глибині офісу. Він з батьківською усмішкою дивився на мої перші кроки в розробці і казав: «Ось тут стань, будь ласка, і можеш випускати».




Читати далі →

Вийшов Upsource 2.0 з IDE-плагіном, аналізом Java-коду в Gradle-проектах, навігацією по JavaScript-коду і багатьом іншим

І знову здрастуй, Хабр!

Тиждень тому ми випустили нову версію Upsource   інструменту для code review і навігації по репозиториям.

За півроку з моменту першого релізу ми встигли значно розширити функціональність, і тепер можемо поділитися результатом нашої роботи.

Читати далі →