• Как реализовать на Swift такое (в полном сообщении пример) написание кода?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    Называется это Trailing Closures.
    Ну собственно вы это и реализовали. Дальше просто вызываете другую функцию внутри вашего closure.
    Пример с вашей реализацией:
    public func body(_ c:  () -> Void) {
        print(c)
    }
    
    body {
        body {
            // second lvl
        }
        text = "test"
    }
    Ответ написан
    Комментировать
  • С чего начать изучать функциональое программирование джависту?

    lxsmkv
    @lxsmkv
    Test automation engineer
    A как же наш родной Kotlin? kotlinlang.org
    все можно потрогать не выходя из браузера try.kotlinlang.org
    материала о нем дофига и на ютубе и на хабре.
    можно потыкать документацию:
    - https://kotlinlang.org/docs/reference/lambdas.html
    - https://kotlinlang.org/docs/reference/functions.html
    Он не чисто функциональный, а имеет функциональные свойства.
    Компилируется в байткод, и позволяет смешивать код с явой (как минимум пользоваться всем JFC),
    так что не придется покидать зону комфорта.
    Ответ написан
    4 комментария
  • В чём суть задания?

    alsopub
    @alsopub
    Вас просят создать приложение где будут цветные папки и заметки в папках. Заметка состоит из заголовка и текста. Папка состоит из названия и цвета. Но как вы будете дальше с заказчиком общаться - для меня загадка.
    Ответ написан
    1 комментарий
  • Зачем нужен Dependency Injection в Android разработке?

    artemgapchenko
    @artemgapchenko
    Начать неплохо бы с понимания того, что такое DI. Обратимся к википедии:

    Внедрение зависимости (англ. Dependency injection, DI) — процесс предоставления внешней зависимости программному компоненту.

    Если выражаться не канцеляритом, а обычным русским языком, то DI - это когда вы своему компоненту (например, классу) предоставляете нужные для него зависимости извне, а не создаете их сами в конструкторе, или через инициализацию в месте объявления поля. То есть не так:

    public class Api {
    	....
    	private final HttpClient client = new OkClient();
    }

    А, например, так:

    public class Api {
    	....
    	private final HttpClient client;
    
    	public Api(@NonNull HttpClient client) {
    		this.client = client;
    	}
    }


    И что нам это даёт?

    Ну, очевидно, нам теперь проще менять зависимости. Нужна вам другая реализация абстрактного класса HttpClient - взяли, и передали её через конструктор, или через метод-setter. В случае с первым куском кода, вам пришлось бы ещё и класс Api переписывать, что в случаях, отличных от тривиальных, может привести к ошибкам. Получается, что ваш класс теперь закрыт от изменений (смотрим Open/Closed Principle).

    Окей, а на практике-то какие бенефиты?

    Во-первых, вы теперь можете написать инициализацию вашей программы через конфигурационные файлы. Скажем, на старте будет читаться простенький текстовый файл, который определяет, какой httpclient использовать, какие настройки доступа к бд применять и так далее, и, исходя из этого, будут определяться зависимости.
    Во-вторых, вам теперь существенно проще писать тесты. Написали вы, скажем, какой-нибудь парсер, который принимает InputStream, содержащий в себе данные json-объекта, как-то хитро его парсит, и выдаёт вам объект вашей бизнес-модели. В приложении этот парсер будет принимать на вход реализацию InputStream'а, которая берёт данные из сети, а в тестах - реализацию, которая просто читает файл с диска (потому что тесты должны выполняться часто и быстро, и ваша задача в тесте - протестировать ваш парсер, а не скорость сетевого соединения).

    Вот, в общем-то, и всё. А Dagger - это просто библиотека, которая автоматизирует ручное внедрение зависимостей, равно как и другие DI-библиотеки.

    P.S. В некоторых случаях чрезмерное увлечение DI может привести к нежелательным эффектам, вроде чрезмерного усложнения кода, поэтому внедряйте аккуратно. Понимание приходит с опытом.
    Ответ написан
    Комментировать
  • Почему фрилансеры готовы общаться только в чате?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответ прост: перепродажа услуг ничего непонимающим человеком в 99.99% случаев: режим "роутера" => ведение двусторонней переписки в двух чат-окнах.

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

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

    Итог: отказались поговорить и ответить на Ваши вопросы голосом - сразу же ищите следующего исполнителя. (или ориентируйтесь на скорость ответа в чате + время суток, что не советую)
    Ответ написан
    6 комментариев
  • Как установить зависимости из package.json глобально?

    @napa3um
    Из вариантов, видимо, только использование средств операционной/файловой системы, чтобы локальные каталоги node_modules сделать ссылками на один глобальный (Linux - ln, Windows - mklink).
    Ответ написан
    Комментировать
  • Oracle сертификат(по java) для Android разработчика на Kotlin?

    compilator
    @compilator
    Senior Data Engineer
    Готовясь к сертификации вы нехило прокачаете себя по технологии, даже если считаете, что вас нечему уже удивить )
    Да и вообще, вкладывать в свое образование всегда выгодно.
    Ответ написан
    Комментировать
  • Каков минимальный набор инструментов 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.
    Ответ написан
    Комментировать
  • Oracle сертификат(по java) для Android разработчика на Kotlin?

    artemgapchenko
    @artemgapchenko
    Тут есть два ответа.

    1. В каком-то подкасте (возможно это было "Радио Бермудский Треугольник") обсуждали найм программистов, влияние сертификатов на шанс приёма на работу и на последующую зарплату. И ведущие согласились на том, что сертификаты хороши, когда интервьюируемый только вышел из вуза, никакого реального опыта у него, но так как есть сертификаты, то это может быть хорошим поводом к тому, чтобы пригласить на собеседование. Только и всего, больше никаких выгод нет.
    2. На хабре как-то отписывался парень, переехавший в Европу (в Нидерланды, если мне не изменяет память), который получал сертификат (по-моему как раз-таки связанный с Java-технологиями), и говорил, что его работодатель даёт прибавку к за наличие определённых сертификатов. Могу соврать, но вроде бы он так же говорил, что в его городе (стране?) прибавка за сертификаты - распространённое явление.

    Так что определитесь с тем, какую вы выгоду от него хотите поиметь. Если, как написано в комментариях: "Как минимум будет понятно что вы не только на котлине могете" - то не стоит тратить своё время и деньги; вы либо работаете с Java, знаете её, работали над серьёзными проектами сделанными на ней и готовы показать это на собеседовании, или нет, и никакая бумага с печатью вам тут не поможет. Если же вы уже имеете на прицеле работодателя, который даст вам более "вкусные" условия за наличие сертификата, или же у него условия работы одинаково замечательны для всех, но он при этом официально заявляет, что наличие сертификата даёт серьёзное повышение шансов на трудоустройство у него - идите и получайте.
    Ответ написан
    1 комментарий
  • Где можно на примере посмотреть связку spring, mongodb, hibernate?

    jaxtr
    @jaxtr
    JavaEE/Spring-разработчик
    Вот здесь описывается то, что ты хочешь сделать. В целом это можно использовать, но по-моему использование Spring Data MongoDB выглядит удобнее.

    Ну, а насчёт конфигураций в XML или Java - кому как нравится.

    UPD java-конфиг Mongo
    @Configuration
    @EnableMongoRepositories
    public class MongoConfiguration extends AbstractMongoConfiguration {
    
        @Override
        protected String getDatabaseName() {
            return "dataBaseName";
        }
    
        @Override
        public Mongo mongo() throws Exception {
            return new MongoClient("127.0.0.1", 27017);
        }
    
        @Override
        protected String getMappingBasePackage() {
            return "foo.bar.domain";
        }
    }
    Ответ написан
    7 комментариев
  • Как начать разработку с нейронными сетями на JAVA, какие возможности они открывать?

    @asd111
    Лучше на python или любом другом скриптовом языке, большинство хороших библиотек для нейронных сетей работают хорошо на python и С++.
    Алгоритмы такие как в Prisma - чистая математика, есть аналог (Ostagram) исходники открытые https://github.com/SergeyMorugin/ostagram там используется реализация алгоритма под авторством Leon A. Gatys, Alexander S. Ecker, Matthias Bethge ( ссылка на математическую теорию arxiv.org/pdf/1508.06576v2.pdf ). Реализация сделана на библиотеке torch под lua https://github.com/jcjohnson/neural-style
    Чтобы лучше понять что это такое можете посмотреть любые уроки по нейронным сетям. Там много математики, поэтому любовь к математике обязательна, иначе станет скучно.
    Ответ написан
    Комментировать
  • Стоит ли изучать Java после прекращения разработки EE?

    jaxtr
    @jaxtr
    JavaEE/Spring-разработчик
    Для начала: Java != Java EE. Прекращение разработки Java EE со стороны Oracle никак не повлияет на жизнь самого языка программирования. Есть вообще сомнения, что Oracle решится на этот шаг, т.к. у них самих большое количество проектов именно на Java EE разработано.

    Плюс стоит помнить, что Java EE - это набор спецификаций, а не конкретная реализация. Java EE состоит из кучи JSR, которые обсуждаются и принимаются JCP (Java Community Process), то есть сообществом, в котором кроме самих Oracle есть Red Hat, IBM, Spring, Apache и многие другие. Oracle может просто передать управление Java EE сообществу. И да, новые JSR выходят вне зависимости от Java EE.

    И стоит помнить, что на Java EE интерпрайз не кончается, ведь есть ещё Spring, который развивается гораздо быстрее и занимает существенную нишу на рынке.

    Так что, учитывая сказанное выше, учить однозначно стоит, если есть желание.
    Ответ написан
    Комментировать
  • Как скомпилировать RIOT OS в CLion?

    @Vkil
    Clion использует CMake, поэтому для сборки проекта надо создать соответствующие CMake-файлы.
    По-видимому надо проанализировать Makefile, разобраться какие библиотеки и исполняемые файлы создаются в проекте, и переписать все это на CMake.
    Если под "комфортной работой" подразумевается только автодополнение. То можно обойтись созданием CMakeLists.txt с содержанием вида
    cmake_minimum_required(VERSION 3.0)
    
    add_executable(foo <список cpp файлов с которыми нужно работать>)
    target_include_directories(foo PUBLIC <список директорий в которых лежат хидеры>)

    Файлик положить в корень проекта и открыть CLion'ом. Компилировать придется через командную строку или другую IDE, но автодополнение должно работать.

    Для подробностей по командам cmake сюда: https://cmake.org/cmake/help/v3.0/command/target_i...
    Ответ написан
    Комментировать
  • Какие примеры правильного Java кода можно привести?

    @sirs
    Что-то мне подсказывает, что вы ищете серебряную пулю, но ее не существует.
    Нет такого понятия как идеальный код, идеальный паттерн, идеальная обработка исключений и т.д.
    Каждый паттерн, каждое архитектурное решение отлично подходит под какого-то круга задач, но этот круг задач всегда ограничен. Нелья написать код и сказать, что это эталон. Если все так было просто, задачу написания кода давно бы уже автоматизировали на 100%.
    То, что вы ищете, может придти только с опытом и со временем.
    Примеры решения конкретных проблем - ищите на stackoverflow, "красивое" оформление кода - в опенсорсных фреймворках на гитхабе (https://github.com/spring-projects/spring-framework).
    Ответ написан
    2 комментария