• Как узнать что RestTemplate#delete(...) отработал корректно?

    jaxtr
    @jaxtr
    JavaEE/Spring-разработчик
    Как сказал Ivan Sokolov, если не было выброшено ошибок, то всё ок. Если ты являешься разработчиком rest-сервиса, который дёргаешь, то уверенности может добавить правильные модульные и интеграционные тесты.
    Ответ написан
    Комментировать
  • Что такое дзен программирование?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Это когда вы пишете что-то для себя, ну или просто что-то очень интересное. У вас есть время разложить все по полочкам, обдумать архитектуру. Вы пишете код, смакуете результат, вертите его так и сяк и наслаждаетесь процессом. Как то так)
    Ответ написан
    Комментировать
  • Что такое дзен программирование?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Чем выше квалификация программиста
    Чем проще задача
    Чем больше времени на ее выполнение
    Тем больше дзен.

    Не парьтесь. Читать и изучать стилистику и правильное программирование нужно, но главное понимать какая основная стоит цель.

    А цель - более читабельный и понятный код.
    Более дешевый в поддержке и модернизации.
    Ответ написан
    Комментировать
  • Что такое дзен программирование?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Простой пример, где применяется грамотный код PHP-класса для получения информации о песне с сервера Icecast с удобным и понятным использованием.
    Ответ написан
    Комментировать
  • Что такое дзен программирование?

    @aresouji
    Конкретных примеров нет, но:

    1) Код должен быть понятен программисту
    2) Код должен быть закоментирован
    3) Код должен быть покрыт тестами (стремится к тотальному покрытию тестами всего кода)
    4) Код должен отвечать стандартам оформления кода
    5) Код должен следовать соответствующим принципам проектирования, самые известные из которых KISS, DRY, SOLID.

    Важно понимать, что термин true code весьма прозрачен, в нем нет конкретики и он не является каким-то стандартом. Решений может быть миллион и каждое из миллиона может быть хорошим.
    Ответ написан
    3 комментария
  • Какие JAVA библиотеки полезны для работы с API?

    EugeneP2
    @EugeneP2
    Java Dev
    Или спринговый RestTemplate

    Или jersey client
    Ответ написан
    Комментировать
  • Каков минимальный набор инструментов JAVA для работы с REST API сервисом?

    jaxtr
    @jaxtr
    JavaEE/Spring-разработчик
    Возможно ли обойтись без контроллеров?

    Можно, но с ними проще и правильнее. И вообще, какие аргументы против?

    Какие библиотеки следует использовать?

    Java EE (Jersey например) или Spring Web

    Как это реализовать максимально просто?
    На Spring:
    @RestController
    @RequestMapping("/books")
    public class BooksService {
        @Autowired
        private BooksRepository booksRepository;
    
        /**
         *  Список книг
         */
        @RequestMapping
        public ResponseEntity list() {
            return ResponseEntity.ok(booksRepository.findAll());
        }
    
        /**
         *  Добавление новой книги
         */
        @RequestMapping(method = RequestMethod.POST)
        public ResponseEntity create(@RequestBody Book book) {
            return ResponseEntity.ok(booksRepository.save(book));
        }
    
        /**
         *  Получение существующей книги
         */
        @RequestMapping("/{id}")
        public ResponseEntity get(@PathVariable String id) {
            if (bookRepository.exists(id)) {
                return ResponseEntity.ok(booksRepository.save(book));
            }
    
            return ResponseEntity.notFound().build();
        }
    }


    В данном случае используется ещё Spring Data JPA.
    Ответ написан
    Комментировать
  • Где хранятся cookie?

    alsopub
    @alsopub
    Возможно это httponly куки, вот через вскрипты они и недоступны.
    Ответ написан
    Комментировать
  • Как получить Header через QNetworkAccessManager?

    Zifix
    @Zifix Куратор тега Qt
    Barbatum
    https://www.google.ru/search?q=qnetworkaccessmanag...

    Третья ссылка в выдаче показывает как работать с полученными заголовками.
    Ответ написан
    1 комментарий
  • Какова связь между Бэк-эндом и параллельным программированием?

    @AlexSku
    не буду отвечать из-за модератора
    Есть 4 вида параллельности:
    1) нити (threads). Хотя это многозадачность, т.к. куски нитей прогоняются последовательно через процессор.
    2) несколько ядер (допустим, 4). Бывает, что компилятор вам помогает и сам пропускает нити через разные ядра процессора.
    3) сетевые машины: прогоняйте куски программы (куски данных) на нескольких компьютерах одновременно.
    4) графический процессор (несколько сотен ядер). Тут узкое место - обмен данными между CPU и GPU.
    Вот и читайте про эти возможности.
    Плюс у каждого языка программирования есть свои методы параллельных расчётов.
    Ответ написан
    Комментировать
  • Как написать собственный протокол беспроводной связи?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    итак, давайте все же определимся что вы хотите сделать.

    Как написать собственный протокол беспроводной связи?


    Беспроводной протокол это как раз таки WiFi (стандарты ieee 802.11) и BlueTooth. Эти протоколы описывают протоколы на физическом уровне модели OSI. То есть "протокол беспроводной связи" это мега сложно и вы хотите сделать не это.

    Требуется элементарно передать данные от устройства А к устройству Б через Wi-Fi, или хотябы BlueTooth.


    Для этого вы должны наладить канал данных между двумя устройствами. Для wifi это означает объеденить их в одну сеть или подключить друг к другу через wifi-direct. Для bluetooth - сопряжение устройств.

    При подключении обоих устройств в одну сеть (через wifi, ethernet или как-то еще - это не важно) - всем самым сложным будет заниматься операционная система. Вам же на выборк 2 транспортных протокола, TCP и UDP, юзай не хочу. Или любой готовый протокол для передачи данных поверх TCP/UDP.

    В случае с wifi direct или bluetooth есть примеры на гитхабе как организовать общение устройств меджу собой.

    Вопрос не совсем по теме: можно ли для этого использовать ssh подключение между устройствами?


    SSH это протокол прикладного уровня, который работает поверх TCP. Так что в случае с подключением в одну сеть - да. Есть еще netcat, который чуть по проще если нужно простые данные отправлять.
    Ответ написан
    1 комментарий
  • Протокол общения с Arduino?

    Neuroware
    @Neuroware
    Программист в свободное от работы время
    Мне кажется вы пытаетесь написать еще одну Firmata, посмотрите в сторону данной библиотеки, возможно там уже есть все что вам нужно
    Ответ написан
    Комментировать
  • Как стать программистом в банке?

    @LowCoder
    Takoi
    Работал.
    Устроится можно - тут совершенно правильно подсказали, что изучите требования на сайтах работодателя и постарайтесь под них подстроится. Изучите технологии, которые востребованы в описаниях вакансий. Очень советую написать несколько статей и дать в резюме на них ссылки. Этим хоть как то можно показать свою экспертность. Это ценится. Очень нелишне будут всякие сертификаты. Можно от Майкрософта, очень неплохо от Оракла - оракл часто юзают в банковской сфере. Так же как и Sybase. По MSSQL тоже можно. MCSD не помешает. Жаль по юниксу нет (скажем так лично я не знаю) представительных сертификаций но можно найти что то на BrainBench.
    Из преимуществ работы в банке могу сказать, что наверно у программистов банковских программ скорее выше зарплата. И она достаточно стабильна. На этом пожалуй все преимущества заканчиваются и начинаются недостатки.

    А именно - в банках есть некое негласное разделение золотые воротнички (высший менеджмент, который обитает в своих сферах и редко снисходит - у них там своя вселенная со своими законами своей гравитацией и законами физики) , белые воротнички - клерки и синие. Это уборщики, техперсонал и ... программисты, как правило. Я не могу сказать про все банки ... но будучи сам и белым и немного позолоченным и потом программистом могу сказать что в целом картина такая. Наверно есть оазисы ... но сейчас не могу сказать, давно ушел из мира банков, хотя сейчас работаю именно в области финансов.
    Т.е. отношение .. ну как к тех персоналу. Какая-нибудь тетя из кредитного отдела, у которой обязанности нажимать в день две кнопки, по которым получается какой-нибудь отчет для начальства будет смотреть с высоты своего положения :) немного свысока на молодого выпускника физтеха кто во сне решает дифуры сходу.
    Работа как правило тоже малоинтересная с точки зрения программиста - довольно скучные приложения в основном клиент сервер туда сюда данные, формы, формы с числом полей приближающихся к бесконечности, джава апплеты зачастую страшные как атомная война.
    Но это еще хорошо, ибо большая часть работы это поддержка. И это самый ужос. Копаться в технологиях, зачастую древних как мумие мамонта. Я сейчас работаю на американскую финансовую контору - так там даже еще майнфремы пашут. Все это было написано тогда когда еще компьютеры были большими и тепло-ламповыми и везде ползали трилобиты и трилобайты. И самое страшное, что это все работает. На эмуляторах конечно. Представьте себе эмулятор под древний майнфрейм - и причем оный эмулятор работает из под винды. А на нем проги бегут на Алголе. И ЭТО рулит реальными (по российским масштабам нереальными) деньгами. Как … никому не ведомо. Интересно? И это в то время как космические бульдозеры сравнивают Большой театр за самострой :).
    Сюда прибавить бюрократию и строгую иерархию (начальник моего начальника не мой начальник) – никаких диванчиков в стиле гугла и яндекса и детских игрушек. Все строго с 9 и до "солнце еще высоко" – обеды в офис и все такое. Никаких, как правило, удаленок и прочих элементов сладкой жизни. Опять же, как правило, никаких поездок и загранкомандировок с интеллектуальными играми, тургеневскими барышнями, ночными освежающими прогулками по Тендерлойн и Кастро в Сан Франциско (для тех кто понимает :)), веществами и напитками в номер. Для рядовых программистов конечно.
    Как правило, весь действительно интересный софт для банков пишут отдельные конторы. Хотя есть гиганты в, которых довольно мощные центры разработки. Есть в Москве такой банк из крупных международных.
    Т.е. если интересная финансовая сфера, то лучше таки пойти в контору, которая изначально программисткая и для программистов. Работа там гораздо интереснее и вы как вроде там не синий воротничок на седьмом киселе, а самая что не на есть белая кость и уважаемый человек – одним словом Программист, а не какой то там клерк :).
    В связи с массовым «импортозамещением», платными парковками и прочими радостями современных реалий (вт.ч. курсом доллара) многие конторы сейчас переводят весь персонал в какие то более теплые и спокойные страны, что конечно делает жизнь скучнее но работу плодотворнее и вообще открывает перспективы. Да и свой евро ближе к телу. Так что может повезти чего не скажешь, про работу в среднем Российском банке. Ах да из преимуществ можно еще отметить мегакорпоративы на новый год )) Но это только раз в году. Так что преимущество сомнительное тем более, если не любитель пышных женщин и вообще жизненных излишеств.
    Вот где действительно интересно – это все что связанно с биржами и трейдингом. Это некий свой особый мир, лежащий чуть в стороне от классического банкинга (читай расчеты). Это специфическая область и там все серьезно и плане математики и в плане технологий. Одна из лучших контор в которой мне довелось работать, это контора связанная с биржевыми данными и трейдингом. Контора американская, но работает в Москве. Очень высокий уровень разработки и культуры управления. Требует серьезного уровня подготовки. Все в основном на С++ и С - все остальное по скорости безнадежно сливало – работа в терминах микросекунд) под правоверный линкус. Советую, если не радует рутинная бесконечная унылая работа рваться в эту область. Еще можно попробовать оценки рисков. Но вообще советую именно программерскую контору а не банк. Кстати мир загнивающего капитализма точно такой же, а не только в России такая картина. Тока на загнивающим надо пару нулей приписать к любой цифре, ну и в долларах все, а так в принципе то же самое.
    Но в трейдинговых конторах интересно, особенно если допустят до торговых алгоритмов. Для этого нужна хорошая мат. подготовка и программерская тоже. Но там зарплаты бывают ну очень большими и бонусы еще.. бонусы
    На хабре есть цикл статей от ITinvest – можно поискать .. почитать проникнутся. Написано очень интересно. Я проработал в этой области много лет но и сам много чего нового и интересного нахожу. Так на всякий случай я с ITinvest никак не связан вообще – так что с них стакан мангового сока за рекламу.

    Если сухой остаток то советую C C++ (Страуструп, Мейерс, Александреску, Саттер помогут и подскажут стандарты 11, 14, 17, boost и stl само собой после всего советую C++ Concurrency in Action, Williams - THE MUST и совершенно адскую книжищщу Addison.Wesley.C++.Template.Metaprogramming.Concepts.Tools.and.Techniques.from.Boost.and.Beyond - вырыв мозга с корнем), к сожалению много стало Java (не люблю жаву но реальность данная нам в ощущениях такова), хорошее ... очень хорошее знание Linux (само собой bash и Perl, Linux.in.a.Nutshell.6th.Edition - хорошая), Python совсем не лишен, алгоритмы - особенно на загнивающем - страсть как любят алгоритмы, 80% времени собеседований не про языки а про алгоримы ( советую скачать Introduction to Algorithms 3th, Cormen, Leiserson, Rivest, Stein.pdf ну и Кнута конечно) и очень хорошо это знание стека протоколов TCP/IP (UNIX._Network_Programming._3rd_ed Стивенса). Еще POSIX многопоточность - я лично учился по Системное программирование на C++ для Unix, Теренс Чан - книжка старая но по моему не потеряла актуальность и Unix Взаимодействие процессов, Уильям Стивенс и QNX-UNIX. Анатомия параллелизма, Цирюлик .О - последняя написанна просто и толково). С этим багажом можно уже выходить на очень приличный уровень. Конечно сразу не взять такой объем но в целом как то так. Ах да .. и английский конечно. На нормльном разговорном уровне.

    Вообще очень хорошая выжимка - короткая но четкая из брошюры по собеседованию для гугла. Она свободна доступна но вот из нее выдержка

    "Coding: You should know at least one programming language really well, preferably C++ or Java. For specific projects, we do also use C
    and Python but these are normally secondary languages at Google. You will be expected to write code in most of your interviews. You will
    be expected to know a fair amount of detail about your favorite programming language. Make sure to check out our Google code style
    guides. You will be expected to know about API’s, OOD/OOP, how to test your code, as well as come up with corner cases and edge cases
    for yours and other peoples code.

    Algorithms: You will be expected to know the complexity of an algorithm and how you can improve/change it. Big-O notations also
    known as the run time characteristic of an algorithm. If you get a chance, try to study up on fancier algorithms, such as Dijkstra and A*. For
    more information on algorithms you can visit TopCoder.

    Sorting: What common sorting functions are there? On what kind of input data are they efficient, when are they not? What does
    efficiency mean in these cases in terms of runtime and space used? E.g. in exceptional cases insertion-sort or radix-sort are much better
    than the generic QuickSort / MergeSort / HeapSort answers.

    Data structures: You should study up on as many other structures and algorithms as possible. You should especially know about the
    most famous classes of NP-complete problems, such as traveling salesman and the knapsack problem. Be able to recognize them when an
    interviewer asks you in disguise. Find out what NP-complete means. You will also need to know about Trees, basic tree construction,
    traversal and manipulation algorithms, hash tables, stacks, arrays, linked lists, priority queues.

    Mathematics: Some interviewers ask basic discrete math questions. This is more prevalent at Google than at other companies
    because counting problems, probability problems and other Discrete Math 101 situations surrounds us. Spend some time before the
    interview refreshing your memory on (or teaching yourself) the essentials of elementary probability theory and combinatorics. You should
    be familiar with n-choose-k problems and their ilk – the more the better.
    "

    Всего дело то :))
    Ответ написан
    2 комментария
  • Как стать программистом в банке?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Заходишь на сайты нескольких банков в раздел вакансии.
    Смотришь требования.
    Анализируешь. Час времени - и у тебя самая актуальная и живая информация.

    Программист в банке не занимается математическими моделями, этим занимаются архитекторы, и бизнес аналитики, и возможно 1-2 на весь банк. Остальные послушно пишут свои кусочки.

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

    s0ci0pat
    @s0ci0pat
    I'm Awesome
    1. Финансовая организация занимается оказанием финансовых услуг. То есть, у них уже развернут бизнес и его нужно поддерживать. Понимаешь? Им нужно поддерживать бизнес по оказанию финансовых услуг, и в этот бизнес не входит обучение начинающих программистов.

    2. Лично я начинал с колл-центра. Так что про junior можешь помечтать. Хотя в моей практике была одна девушка гений, которую на последнем курсе сразу взяли на senior. Если ты не гений и хочешь в банк, присмотрись к черному входу, где требования поменьше.

    3. Возможно. Сейчас все банки пилят приложения под мобильные устройства. А frontend и backend не взаимосвязанны и чаще всего пилятся не только разными программистами, а даже разными отделами.

    4. Моделированием занимаются аналитики.

    5. Можно. Смотри ответ 3.

    6. Больше всего ценится профессионализм и опыт работы.

    7. Нет. Все равно будут наняты профессиональные переводчики.

    8. Никакие, потому что они не важны на этом этапе карьеры. А когда станешь архитектором, то и сам поймешь.

    P.S. Аттестация ФСФР для программиста? LOL, шта?))))
    Ответ написан
    Комментировать
  • Как стать программистом в банке?

    sgjurano
    @sgjurano
    Разработчик
    hh.ru/search/vacancy?text=%D1%80%D0%B0%D0%B7%D1%80...

    Посмотри на то, что им нужно. Самый верный способ.
    Ответ написан
    Комментировать
  • Как стать программистом в банке?

    sim3x
    @sim3x
    У тебя неправильное мнение про банки и программеров в них - ты не будешь писать софт - ты будешь хелпдеском-прокладкой между пользователем и аутсорсером, который на самом деле пишет софт

    Есть исключения, но они также выделяют разработку в отдельный бизнесс

    ПС в банках не платят больше
    Ответ написан
    Комментировать
  • Протокол общения с Arduino?

    a_volkov1987
    @a_volkov1987
    Инженер-схемотехник
    Для начала определите какое оборудование будет подключено к ардуине и в каком виде оно будет принимать и отдавать данные для общения с сервером.
    Потом определитесь как именно будет происходить общение с серверомю Может вам нужны данные от оборудования только "по запросу" или же ардуина должна с определенным интервалом отдавать данные сама.
    Ну и исходя из этого разработайте протокол.
    Определите заголовок пакета для передачи и приема, если придется принимать и передавать пакеты разной длины, в заголовке выделите секцию под описание длины пакета. И не передавайте данные в стоковом виде, если можно обойтись без этого. То есть секция пакета, которая описывает получателя данных, не должна быть со строковыми данными. Используйте код. 01 - модем, A2 - датчик температуры .... F0 - датчик влажности и т.д.
    В принципе пакет от сервера может иметь следующий вид:
    AA 00 - (2 байта) признак начала пакета
    XX XX - (2 байта) длина пакета в байтах (без заголовка)
    XX -(1 байт) получатель данных
    XX...XX (n байт) аргумент для передачи получателю

    Опционально в конце пакета можно передать контрольную сумму, вычисленную как некую функцию от заголовка и тела пакета.

    Что и как передается в аргументе - ваше дело. Для датчика DHT вы вообще можете ничего не указывать, а для модема первый байт пакета может содержать AT-команду в виде условного кода, 10 байт после нее - номер абонента без 8 и (возможно) еще n байт с текстом, если это передача смс.
    ДЛя управления какой-нибудь индикацией вы можете передавать 1 байт, в котором будет зашифрован тип индикации (00 - индикация выключена, 01 - постоянная индикация, 02 - мигающая индикация)

    От ардуино вы можете получать данные таким же пакетом.
    Ответ написан
    Комментировать
  • Протокол общения с Arduino?

    Весь протокол в обмене словами, по сути.
    Т.е. по определенному набору входных слов можно сделать функции, которые отработают и отправят в ответ строку - результат.

    Можно сделать примерно такое (сильно не пинать за говнокод, это пример!):
    отправляем строку. арудина её читает, если находит подстроку, то выполняет определенное действие, иногда пишет в терминал какие-то слова, что действие выполнено.
    if (strstr(term_in, "SWPOWER"   ) != 0) code = 1;/*strstr - найти подстроку в строке, пришедшей с ПК (алгоритм чтения слова опустим)*/
    if (strstr(term_in, "CALL_1"    ) != 0) code = 2;
    if (strstr(term_in, "SMS_SEND"  ) != 0) code = 3;
    if (strstr(term_in, "CTRL+Z"    ) != 0) code = 4;
    //в зависимости от найденной подстроки был получен один из кодов и по нему работает case
          switch (code)
          {
            case 1:
              Serial.println("@power on/off signal");
              digitalWrite(9, HIGH);
              delay(1000);
              digitalWrite(9, LOW);
              break;
            case 2:
              Serial.println("term@: call number +790679__823");//отправляем сообщение, что начата попытка дозвона
              gprsSerial.println("ATD+790679__823;");//в шилд
              break;
            case 3:
              function1();
       default:
              /*Код, который выполнится, если ниодно из константых значению не соответствует значение в переменной variable*/
              Serial.print("text ");
              break;
    Ответ написан
    3 комментария