image

Всем привет! Разработка программного обеспечения — это сегодня само по себе дело сложное в связи с обилием всевозможных языков программирования, операционных систем, платформ, устройств и прочих факторов. Но, пожалуй, создание браузера — это одна из наиболее трудных задач, требующих особого внимания: всё-таки, браузер — это на сегодняшний день главное приложение, с которым работает ежедневно каждый пользователь Интернета. А учитывая, что контент сегодня представлен в столь сложном динамическом виде, что и не снился разработчикам первых браузеров, при этом принципы работы с этим контентом переросли из «посмотреть — почитать» в полноценную работу с приложениями, задача оказывается совсем не тривиальной. В общем, вывод напрашивается один: браузеры сегодня становятся всё сложнее и, как следствие, в процессе разработки в код проникает всё больше ошибок. Как с этим можно бороться? Как с этим боремся мы в Vivaldi? Вот об этом вкратце и поговорим.

Итак, начну с главного. Из чего состоит процесс разработки? Он состоит из нескольких важных этапов, включающих собственно написание кода, тестирование и выпуск публичной версии. Так это работает, например, если вы пишете программу уровня «Hello, world!». Впрочем, на самом деле при разработке браузера это работает точно так же, просто на чуть более сложном уровне, включающем несколько релизов разной степени готовности и несколько «фильтров» отлова ошибок. в нашей компании процесс выглядит следующим образом.

Первый этап


imageНа первом этапе происходит добавление разработчиками своего кода в браузер, при этом на серверах компании ежедневно идёт процесс компиляции исходников браузера в бинарные пакеты, по несколько версий в день. Это — внутренние сборки, в которых разработчики имеют возможность проверить свои свежие правки, как говорится, в деле — на живом браузере.

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

Отдельные «счастливчики» могли понять это, обнаружив после обновления зелёную иконку браузера (см. слева) — именно она используется для внутренних тестовых сборок. Впрочем, зелёная иконка имеется и у сборки следующего этапа.

Второй этап


На этом этапе выпускается сборка для Sopranos — наших добровольных тестеров со всего мира (включая Россию), которые оказывают нам неоценимую и уникальную помощь в создании браузера. Их сборка, выпускаемая ежедневно, также имеет зелёную иконку и все экспериментальные функции, но самые явные ошибки в свежем коде разработчиков там уже отловлены. На этом этапе тестеры (а все они — отличные спецы в программировании и отладке) проверяют, как вновь добавленный код повлиял на уже существующие функции. Это очень важный этап, позволяющий выявить основную массу действительно критичных недочётов. Также можно добавить, что именно Sopranos в первую очередь проверяют и все сообщения об ошибках, ежедневно поступающие в нашу BTS от пользователей, и это уже

Третий этап


imageЭто — наши еженедельные публичные тестовые сборки, выходящие с чёрной (на самом деле — с серо-синей) иконкой (см. справа). Данные версии собираются для широкого тестирования и в них отсутствуют многие экспериментальные функции, которые ещё не готовы к столь массовому использованию — мы просто потонем в сообщениях о том, что что-то не работает. Ну, и элемент сюрприза тоже никто не отменял.

Еженедельные сборки для нас имеют не менее важное значение, чем и внутренние: именно здесь происходит отлов основной массы ошибок и недочётов благодаря тому, что у пользователей данных версий исключительно широкий разброс как по «железу», так и по личным привычкам в работе с браузером. Происходит полноценный тест-драйв браузера в реальных боевых условиях. Пользователи находят такие недочёты, которые оказались скрытыми от глаз как самих разработчиков, так и официальных тестеров Sopranos.

Главная же цель выпуска подобных тестовых публичных сборок — шлифовка и полировка кода браузера для подготовки уже стабильной версии браузера, которая выходит примерно раз в 6 недель и знаменует собой

Четвёртый этап


imageИтак — финальная версия. Привычная красная иконка и сравнительно стабильный, отлаженный код. Почему — «сравнительно»? Потому, что идеал недостижим и полностью избавиться от всех ошибок в коде сегодня практически нереально — слишком сложными стали сегодня программные продукты. Это как с самолётами. Мало кто знает, что абсолютно в каждом самолёте, перевозящем в данную минуту пассажиров из одной географической точки в другую, имеется журнал известных на данный момент неполадок — список недочётов, с которыми самолёт допускается к работе. Другими словами, абсолютно исправными самолёты не бывают никогда в принципе.

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

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

В качестве итога


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

Также не забывайте заглядывать на наш официальный веб-сайт vivaldi.com — там в последнее время происходят интересные изменения и появляется полезная информация, включая приглашение на работу.

P.S. Да, если вдруг вы забыли, откуда можно загрузить браузер Vivaldi — добро пожаловать!
Поделиться с друзьями
-->

Комментарии (50)


  1. zigrus
    15.10.2016 14:02
    -1

    в общем заметил что почти любая программа начинает глючить под виндой после 2-3 недель непрерывной работы.
    в 2011 году перезагружал комп раз в 3-4 месяца
    теперь все чаще и чаще. раз в неделю а то и два.
    можно повысить стабильность программы до такого уровня что бы ее не нужно было перезапускать каждый день?


    1. Shpankov
      15.10.2016 14:08
      +1

      Невозможно. Это потребует огромных затрат ресурсов на достижение стабильности кода. Ресурсов и времени. И пока вы будете отлаживать свою программу, доводя её до совершенства, ваши конкуренты выпустят 10500 сырых обновлений и перетянут к себе вашу аудиторию.

      Кроме того, учитывая, что все программы сегодня живут не сами по себе, а в связке с другим софтом (включая ОС), вы не сможете отладить свою программу до конца под её окружение — окружение уже изменится.


      1. zigrus
        15.10.2016 14:43
        +3

        раньше комы, ОС и программы были как маленькое озеро с рыбками
        (впадина — комп, вода — ОС, рыбки — программы)
        теперь это бурлящий горный поток текущий по пересеченной местности а лосось плывет против течения на нерест.


        1. Shpankov
          15.10.2016 14:56

          Причём, это даже не река, а мутный селевый поток, переполненный мусором, камнями, вырванными с корнем деревьями.


    1. delvin-fil
      16.10.2016 18:23

      Может быть это проблема WIN? У меня нормальные uptime 30 дней и браузер не выключается(пользуюсь исключительно vivaldi и это не реклама).
      Закладок и вкладок «немеряно»
      image
      Изредка бывает при загруженной игре. «Изредка» — раз в месяц.


      1. zigrus
        17.10.2016 08:15

        как часто обновляете саму программу vivaldi?


        1. delvin-fil
          19.10.2016 07:20

          За время использования с десяток раз. В портах первая 1.2.490.35_p1, но я их чистил, поэтому более ранних нет.


  1. aenoki
    15.10.2016 14:05
    +1

    Добрый день.

    В ранних сборках (где-то до 1.1 или 1.2) если открываешь ссылку из стороннего приложения (ну например в жаббере-скайпе клацнул ссылку) — браузер остается фоновым окном и открывает себе ссылку в фоне. Сейчас же браузер становится активным после каждого такого клика. Я так подозреваю, что так для всех платформ, конкретно у меня Linux.
    Можно как-то вернуть/настроить?


    1. Shpankov
      15.10.2016 14:09

      Отправьте баг-репорт и номер сообщите мне.


      1. aenoki
        15.10.2016 14:29
        +1

        VB-22205.
        Спасибо!


      1. reimax
        15.10.2016 23:40

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


        1. Shpankov
          16.10.2016 00:45

          Я могу посмотреть — скиньте номера.


    1. den_po
      16.10.2016 01:29
      +1

      Какие ещё браузеры так умеют? И как они различают, в фоне надо показать или нет?


      1. vorphalack
        16.10.2016 03:46

        лиса?


      1. aenoki
        16.10.2016 11:31
        +1

        Опера 12.


        1. den_po
          16.10.2016 11:37

          А второй вопрос?


          1. aenoki
            16.10.2016 11:52

            Никак не различает, всегда открывает ссылку в фоне. Никогда 12ю оперу в глаза не видели?


            1. den_po
              16.10.2016 13:09

              Никогда не видел, чтоб браузеры открывали в фоне. Опера 12 не исключение.


  1. VGrabko
    15.10.2016 15:28

    нет уж извольте…

    http://i.imgur.com/bqnhUtS.png


    1. 23rd
      15.10.2016 17:42

      А какая версия Firefox?


      1. sumanai
        15.10.2016 17:52

        Тут суть не в FF, а в упавшем установщике (вероятно, вивальди). Хромиум дропнул поддержку XP, вот и браузеры на его основе перестали её поддерживать.
        Вивальди предлагает какую-то старую версию, и только в 32 битном варианте, что меня, видящего на XP x64, безмерно печалит.


        1. Shpankov
          15.10.2016 18:47

          Всё так, но нужно подходить философски: рано или поздно это бы всё равно произошло. Я имею в виду — уход XP в историю.


          1. sumanai
            15.10.2016 19:00

            Да я не беспокоюсь, я прочно сижу на FF, за другими браузерами слежу ради интереса и вдохновения.


        1. 23rd
          15.10.2016 19:27

          Тут суть не в FF, а в упавшем установщике (вероятно, вивальди). Хромиум дропнул поддержку XP, вот и браузеры на его основе перестали её поддерживать.
          Это не отвечает на мой вопрос.
          Вообще я спрашивал, думая, что FF уже тоже дропнула поддержку WinXP, но погуглил и не нашёл подобных новостей.


          1. sumanai
            15.10.2016 23:21

            Ну конечно. FF молодец, последний держится. Остальным фу, плохие, негодные браузеры.


          1. dartraiden
            17.10.2016 13:20
            +1

            Поддержку XP и Vista дропнут, ориентировочно, в марте 2017. В 53 версии.
            http://www.ghacks.net/2016/09/27/firefox-53-no-support-for-windows-xp-or-vista/

            Однако, 52-я версия будет ESR (с длительной поддержкой), а в ней поддержка XP ещё присутствует.


  1. TLT-IX
    15.10.2016 18:45
    -2

    Компания Opera вместо сборки ещё одного никому не нужного хромиума
    могла бы запустить краудфандинг для открытия исходников движка Presto.

    Но… имеем жалкие потуги бывших работников — ещё один никому не нужную сборку Chromium


    1. Shpankov
      15.10.2016 18:49

      У нас почти миллион пользователей по всему миру, это по-вашему «никому не нужный браузер»?


    1. 23rd
      15.10.2016 19:30

      Ну так-то Опера единственная из Хромиумных поддерживает Windows XP.
      http://www.opera.com/blogs/news/2016/04/chrome-alternative-opera-for-windows-xp-vista/


      1. sumanai
        15.10.2016 23:24

        В прошедшем времени. 36 последняя, пока ещё получает обновления безопасности, но новых фич уже не будет.


  1. Ajvan
    15.10.2016 18:45

    Добрый день.

    На только что установленной винде не работает проверка обновлений — ни стабильной версии браузера, ни тестовой.

    Это же происходит в линуксе.

    Видимо, это у меня какие-то проблемы, раз больше никто не указывал…

    Написано «Appcast XML data incomplete»


    1. den_po
      16.10.2016 00:46

      На форуме тоже жалуются.
      Что происходит, если открывать эти ссылки?
      https://update.vivaldi.com/update/1.0/win/appcast.xml
      https://update.vivaldi.com/update/1.0/public/appcast.xml


      1. Ajvan
        16.10.2016 08:00

        Соединение не конфиденциальное… не хочет в общем.Собственно, я с браузера Вивальди не могу скачать инсталлятор с их же сайта. И с хрома не могу. Ругается и не дает. С Мозиллы только.


        1. den_po
          16.10.2016 11:09

          Проблема у GlobalSign. Попробуйте очистить список отозванных сертификатов.
          https://support.globalsign.com/customer/portal/articles/1353318-view-and-or-delete-crl-ocsp-cache


  1. Igor_D
    15.10.2016 20:14

    Очень не хватает devtools в окне страницы (а не в отдельном окне, как сейчас).


    1. Shpankov
      15.10.2016 20:15
      +1

      Недавно наш Sopranos Денис Порфирьев сделал небольшой хак:

      https://habrahabr.ru/company/vivaldi/blog/312276/#comment_9853324


      1. Igor_D
        15.10.2016 20:43

        Спасибо! Опробую.


  1. AhJong
    16.10.2016 18:24

    Долго держался, целый год, наверное, вернулся снова на Chrome.

    Ошибки не исправляются, ни косметические (как, например, отсутствие перевода пункта «открыть в фоновой вкладке» контекстного меню), так и showstoppers, такие, как регулярный слет всех открытых окон при перезапуске браузера или отсутствие возможности запустить расширение Google Hangouts.


  1. MasMaX
    19.10.2016 15:58

    Недавно поставил вместо Ubuntu 16 другую ОС — Fedora 24. Теперь Vivaldi падает иногда по 2-3 раза в час. Падает, запускаешь его и работаешь дальше. Из расширений было только uBlock и Frigate. Выключил их — все равно падает. Флеша нет, открыто около 10 разных закладок всегда, музыки и видео в фоне нет. Падает при простом чтении новостей.

    Привык уже к Vivaldi, Хром недавно подвел меня съеданием все памяти и зависом компа во время важного мероприятия.


  1. funnybanana
    19.10.2016 17:07

    Честное слово, несколько раз пытался перейти на Vivaldi. но каждый раз не задерживаюсь на ней более суток… то пароли из хрома нельзя все вытянуть, то вместо настроек у меня черный экран, то внезапно пропадающие шрифты… но это ладно, на этот раз просидел на вашем замечательном браузере 2 часа, верстал спокойно страничку, жму F12 и в DevTools не нахожу привычной кнопочки переключения Toggle Device Toolbar (хотя она есть в хроме)
    image
    на крайний случай панель DevTools в хроме можно закрепить справа и таким образом масштабировать ширину окна примеряя верстку под разные экраны (у вас же окно DevTools вынесено отдельным окном)…

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

    P.S на этот раз меня ещё заманила иконка почты на скриншотах вашего браузера:
    image

    думал что будет как в старенькой imageпере — встроенный почтовик, ан-нет обознался. ну или сходу не разобрался как установить сие в браузер…

    P.P.S хром зараза с каждым днём всё прожорливее и прожорливее… подсасывает порой 700 МБ оперативной памяти для одной вкладки…


    1. Shpankov
      20.10.2016 01:53
      +2

      DevTools в работе, почтовик тоже.


      1. funnybanana
        20.10.2016 09:11

        Хорошо, буду ждать.


    1. Shpankov
      20.10.2016 01:57

      По devtools — можете попробовать самодельный вариант от одного из наших тестеров:

      https://github.com/justdanpo/VivaldiHooks

      image


      1. reimax
        23.10.2016 15:39

        только вот в 14.04 не завелось оно. браузер просто не видит этих скриптов. у меня либо отдельная специальная сборка, либо даже уже не знаю.


        1. den_po
          23.10.2016 18:02

          либо установлено неправильно или не туда


          1. reimax
            23.10.2016 18:11

            deb пакет с офф сайта. если он установлен не туда, то это опять таки вопрос к браузеру, ибо ставлю как есть штатными средствами. на форуме смотрел, папка установки у меня правильная.


            1. den_po
              23.10.2016 20:41

              я про «эти скрипты»


              1. reimax
                23.10.2016 21:34

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


                1. den_po
                  23.10.2016 23:01

                  Были случаи, и копировали не в ту папку, и сохраняли с гитхаба html вместо js. Напишу в личку.


      1. reimax
        23.10.2016 15:44

        кстати, заметил разницу при запуске браузера из консоли и через программы в юнити:

        Flash (отключено)
        User Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.148 Safari/537.36 Vivaldi/1.4.589.38
        Командная строка /opt/vivaldi/vivaldi-bin --ppapi-flash-path --ppapi-flash-version --always-authorize-plugins --disable-translate --window-depth=24 --x11-visual-id=32 --wm-user-time-ms=26798629 --flag-switches-begin --flag-switches-end


        а так с консоли
        Flash 23.0.0.162
        User Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.148 Safari/537.36 Vivaldi/1.4.589.38
        Командная строка /usr/bin/vivaldi --ppapi-flash-path=/usr/lib/pepperflashplugin-nonfree/libpepflashplayer.so --ppapi-flash-version=23.0.0.162 --always-authorize-plugins --disable-translate --window-depth=24 --x11-visual-id=32 --wm-user-time-ms=26979537 --flag-switches-begin --flag-switches-end


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