• Что такое REST и RESTful api?

    DzodzikovAK
    @DzodzikovAK
    Java Developer
    REST - набор архитектурных принципов построения сервис-ориентированных систем.

    RESTful - прилагательное, употребляющееся по отношению к сервисам, которые следуют принципам REST.

    Вот здесь человек рассказывает (переводит), как определить, является ли ваш сервис RESTful и в какой степени:
    https://habrahabr.ru/post/319984/
    Ответ написан
    Комментировать
  • Как деплоить jar с помощью docker?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    ну обычная схема CI/CD - какой-нибудь сборщик (для гитхаба это обычно https://travis-ci.org/) - компилирует твой джарник.
    потом он же потом копирует этот джарник докер имидж.
    потом отправляет этот докер имидж в репозиторий, например на докерХабе, оттуда ты уже можешь скачивать и запускать контейнер там где тебе надо.
    Ответ написан
    Комментировать
  • Git визуальный просмотр веток?

    glaphire
    @glaphire
    PHP developer
    gitkraken - бесплатная версия хороша, может подвисать, если в ветке очень много коммитов (больше тысячи)
    Ответ написан
    8 комментариев
  • На чем пишут десктоп приложения на Java/C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    ну тогда уж сосвоей стороны докину..

    На счет C# очень много противоречия, между старой Form и WPF, какую использовать


    ни каких противоречий:
    - "набросать на коленке" простенький UI это формы. но они не держат корректно масштабирование экрана. обещают что скоро будут, но пока нет
    - полноценный интерфейс это WPF
    - а еще есть AvaloniaUI (тоже на XAML, со своими плюшками, но есть и разница в поддержке проекта корпорацией (WPF) и сообществом (AvaloniaUI))
    - есть UWP (вин 10 aka метро UI)
    - есть Electron.NET (но лично я противник таскать за собой копию целого браузера)
    - есть даже GTK# и обертки для QT

    противоречий нет. есть достоинства и недостатки, а так же разный порог вхождения (а бывает еще еще полное неведение о положении дел)

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

    ps
    о кроссплатформенности C# - .Net Core + (AvaloniaUI или Electron.NET) или Xamarin (XAML)
    о семействе Electron.* - современный Skype и VS Code написаны на Electron
    о винде - кровавый энтерпрайз плотно сидит на WPF
    о фрилансе - UWP самый короткий путь выставить в витрину магазина MS свое платное приложение для вин 10 (если конечно у вас есть стоящие идеи)
    pps если хочется в Google Play выставляться, и знаете C# а Java смущает - тогда Xamarin (но многие считают что лучше Kotlin ;)))
    Ответ написан
    Комментировать
  • Как разделить большой git-репозиторий?

    @panasyuk
    Может git submodules?
    Ответ написан
    Комментировать
  • Есть ли резон переучиться на программиста?

    @yugoru
    Я в 41 кардинально сменила род занятий, правда ушла не в разработчики, а в тестировщики. Подобных вопросов я не задавала, так как была уверена в своих силах и в том, что мне дико интересно тестировать. Зарплата была вторичной мотивацией.
    Сначала я определилась что именно мне интересно (бэкенд, нагрузка/перфоманс и темт-дизайн) изучила под это дело все, сто смогла и устроилась на работу. Спустя год я стала тимлидом в своей группе (так как возраст это ещё и жизненный опыт, который помогает именно руководить и организовывать).
    Мне кажется, что если программирование увлекает настолько, что хочется встать пораньше, чтоб покодить, или не пойти с друзьями в бар ради доделки кода, то шанс найти свое место очень большой. Взрослый человек умеет обучаться и концентрироваться, так что и развиваться может быстро.
    Ответ написан
    2 комментария
  • Где можно пройти курс по алгоритмам и структурам данных?

    sgjurano
    @sgjurano
    Разработчик
    В шаде отлично преподают алгоритмы, но мне кажется это оверкилл :)

    Из простых решений: leetcode, hackerrank.
    Ответ написан
    8 комментариев
  • Есть ли хорошие вузы на направление информационная безопасность в России?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Без английского в безопаске делать нечего
    В РФ/СНГ нет особо хороших что вузов и рассчитывать на это бесполезно.

    Поясню - за то время что вы проведёте в вузе многие вещи просто устареют. Учиться самому, брать только зарубежные курсы, много практиковаться и, желательно, стажёром в крупной организации
    Ответ написан
    Комментировать
  • Дайте совет, как правильно развиваться в фронтенде?

    rockon404
    @rockon404
    Frontend Developer
    Ответ написан
    Комментировать
  • Где вы берете идеи для дизайна?

    @bigburn
    Делаю неживое живым
    https://www.awwwards.com — ссылки на сайты с "отзывчивым", креативным и просто красивым дизайном
    https://dribbble.com, https://codepen.io, https://tympanus.net/codrops/all-articles/ — в основном различные элементы дизайна.
    Pinterest ещё посматриваю
    Ответ написан
    Комментировать
  • Как пушить на github чтобы не вводить каждый раз логин и пароль?

    bukinion
    @bukinion
    Некороткий мануал по SSH + GitHub & BitBucket (на Win, почти тоже и на Lin)

    Вначале надо найти ключи
    $ ls -al ~/.ssh
    # Спискок файлов в директории .ssh, если они есть
    # id_rsa.pub # Нам интересны эти два брата, точнее этот публичный код (паб)
    # id_rsa # Это для сверки с пабом


    Если их нет, то будем генерить, после чего ласково попросят пароль, он должен быть сложным, в конечном итоге вводится он будет только один раз при старте сессии.
    $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    # Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
    # Enter passphrase (empty for no passphrase):
    # Enter same passphrase again:


    Кстати, пароль можно и поменять:
    $ ssh-keygen -p # Введете старый, а потом новый.

    Консоль выведет следующее:
    # Your identification has been saved in /Users/you/.ssh/id_rsa.
    # Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
    # The key fingerprint is:
    # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com


    Теперь надо добавить ваши ключи в ssh-агент
    Удостоверьтесь в том, что он у вас есть — запустите
    $ ssh-agent -s

    Должен быть следующий однострочный (!) вывод, номер pid будет другим, все остальное от лукавого:
    Agent pid 59566

    Если нет, то скорее всего в терминале другая оболочка, тогда:
    $ eval $(ssh-agent -s)
    Agent pid 59566


    Вот теперь можно добавить ключи в ssh-агент
    $ ssh-add ~/.ssh/id_rsa

    Далее, добавим ключи в VCS-сервисы github и bitbucket, для этого скопируйте содержимое id_rsa.pub, и вставьте в настройках своего аккаунта на VCS (например, "SSH and GPG keys" для Github). Активируем ключи.

    для github:
    $ ssh -T git@github.com

    чуть длинней, для bitbucket, вначале надо создать файл-конфиг, ~/.ssh/config, куда добавить следующие строки:
    Host bitbucket.org
    IdentityFile ~/.ssh/id_rsa # Тут приватный ключ!


    После чего запустить следующую команду:
    $ ssh -T git@bitbucket.org

    В каждом случае, если все пройдет успешно, то вы получите следующие сообщения:
    Hi #{username}! You've successfully authenticated, but GitHub does not provide shell access.


    или
    conq: logged in as tutorials.
    You can use git or hg to connect to Bitbucket. Shell access is disabled.


    К слову, что Github, что Bitbucket выдали мне в этот раз такое:
    Thу authenticity of host 'github.com (192.30.253.113)' can't be established.
    RSA key fingerprint is 12:12:12...12.
    Are you sure want to conecting (yes/no)?


    Ответил yes, консоль что-то ответила и все работает.

    Если же вы используете алиасы для хостов, то и активация должна быть через алиас:

    $ ssh -T git@alias


    Если работаете с Sourcetree (рекомендую для винды), то есть такой момент, что программа не принимает стандартный формат этих ключей и что бы работать с программой через ssh придется из полученного ключа (приватный) сгенерировать их в другом формате понятном putty. Для этого используется программа puttygen. Которая входит в поставку Sourcetree.


    Занудно, но уже финал близок, далее нам нужно настроить ~/.bashrc, которого на винде нет, именно он будет содержать инициализационные настройки для консоли и запускать ssh-агент, который будет включать ваши ключи, запоминать сессию:
    # Note: ~/.ssh/environment should not be used, as it
    #       already has a different purpose in SSH.
    
    env=~/.ssh/agent.env
    
    # Note: Don't bother checking SSH_AGENT_PID. It's not used
    #       by SSH itself, and it might even be incorrect
    #       (for example, when using agent-forwarding over SSH).
    
    agent_is_running() {
        if [ "$SSH_AUTH_SOCK" ]; then
            # ssh-add returns:
            #   0 = agent running, has keys
            #   1 = agent running, no keys
            #   2 = agent not running
            ssh-add -l >/dev/null 2>&1 || [ $? -eq 1 ]
        else
            false
        fi
    }
    
    agent_has_keys() {
        ssh-add -l >/dev/null 2>&1
    }
    
    agent_load_env() {
        . "$env" >/dev/null
    }
    
    agent_start() {
        (umask 077; ssh-agent >"$env")
        . "$env" >/dev/null
    }
    
    if ! agent_is_running; then
        agent_load_env
    fi
    
    # if your keys are not stored in ~/.ssh/id_rsa or ~/.ssh/id_dsa, you'll need
    # to paste the proper path after ssh-add
    if ! agent_is_running; then
        agent_start
        ssh-add
    elif ! agent_has_keys; then
        ssh-add
    fi
    
    unset env


    И снова не финал, скорее всего так как вы не пользовались SSH, то ваши уже существующие локальные репо будут работать по http/https, поэтому надо сменить адреса. Адреса удаленных репозиториев проверяются командой $ git remote -v. Для смены адресов git есть специальная команда: $ set-url, ввести следующее:
    $ git remote set-url origin git@github.com:USERNAME/OTHERREPOSITORY.git


    Вернуть все на Родину можно аналогично
    Ответ написан
    1 комментарий
  • Как лучше организовать код?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - ООП, иначе нет смысла заморачиваться с крупным проектом, да и функциональный подход сегодня вообще в проектах больше чем "свой микроблог" никто не использует, это не рационально.
    Так же откройте для себя MVC и возьмите какой-то фреймворк в котором все это уже нормально реализовано, в итоге время потраченное на прочтение документации и написание контроллеров и моделей к проекту будет в разы меньше чем вы потратите на свое кошмарное велосипедостроение. Кроме того, построенный по вашим наброскам Титаник и показать то кому-либо будет стыдно, а знания любого современного фреймворка напротив - будет большим плюсом.
    Удалив модуль и БД мы повлияем на работу других модулей. Изменив структуру БД мы повлияем на работу других модулей.
    SOLID, DRY, KISS...PSR4 и много других страшных аббривиатур вам помогут )
    Ответ написан
    8 комментариев
  • Как выбрать архитектуру и БД для высоконагруженной системы?

    @stratosmi
    Добрый день! Хотел посоветоваться с опытными бэкэнд программистами.
    Встала задача создать высоконагруженный проект (Типо кассового решения). В базе данных через 1-2 года планируется , около 150млн записей у основной сущности (продажа).


    150 миллионов записей - это ерунда, а не высоконагруженное решение.
    У меня 5 000 записей в секунду создается на довольно дохлом (что-то около 500 рублей в месяц стоит хостинг) сервере VDS/VPS
    Два года? 150 миллионов - это за ... 9 часов.
    И да, я не считаю это решение высоконагруженным.
    Нагруженным - да.

    то есть нужно максимально быстрое чтение этих данных

    Нет.
    Людям не нужно снимать отчеты со всех данных сразу. Только часть данных интересует их.

    Если всё же нужны все данные сразу (ну какая-то общая статистика) - то на основании первичных данных выполняется агрегация (например, по ночам) и тогда отчеты будут строится вообще - мгновенно.

    Но большим плюсом является что эти 150млн записей - разделены примерно на 1000-5000 разных пользователей, и выборка нужна в рамках одного пользователя только.

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

    Это зависит от того что за данные.
    Что именно за данные.
    Сам пишу на mysql - потянет ли он такие объемы, на нормальном железе. Или нужно смотреть в сторону других БД?

    MySQL довольно быстр.
    Например, PostgreSQL более функционален. Но насчет скорости - не обязательно.
    потянет ли он такие объемы, на нормальном железе

    А в официальную документацию заглянуть?
    https://dev.mysql.com/doc/refman/8.0/en/limits.html
    150 млн. записей для современных СУБД и современных компьютеров (даже не на "нормальном железе") - это тьфу, а не нагрузка.

    P.S.:
    Для высоконагруженных систем формирования отчетов есть различные решения:

    1. Предварительная (ночная) агрегация данных
    2. Master-slave, где master только обновляет данные, а slave - только для отчетов.
    3. Специализированные, заточенные под конкретный вид данных СУБД (InfluxDB, Redis-Tarantool-Aerospike, ClickHouse пр.)
    Ответ написан
    4 комментария
  • Целесообразно ли обучаться нынешнему node.js (10.12.0) по курсам для версии 0.10?

    Обучайся по документации. Самый верный способ узнать, что есть язык \ технология, и из чего она состоит.
    Ответ написан
    2 комментария