• В чем разница императивного и декларативного подхода в javascript? Это процедурный и ООП стили?

    @pikkvile
    developer
    Моё понимание такое.
    Декларативное программирование - это когда в коде описано что должно получиться, а императивное - когда написано как это сделать. Т.е. в первом случае мы совершенно не интересуемся, каким именно образом машина сделает работу, какие инструкции в каком порядке выполнятся и так далее, мы просто объясняем ей, что хотим увидеть в результате. Примеры декларативных языков - html, css, sql, конфиг nginx. Ещё тут стоит упомянуть функциональные языки (lisp, haskell), программы на них тоже, как правило, являются описанием (декларацией) того "что должно получиться". Ну, короче говоря, мы говорим компьютеру: вот смотри, мне надо чтобы было так, а как ты это сделаешь, мне не интересно. Аналогия такая: у меня есть чертёж бани, я даю его бригаде строителей и уезжаю. Как именно они там будут таскать брёвна, пилить доски и прочее - я не в курсе.
    Программируя императивно, мы описываем конкретные шаги, действия и точный порядок, в котором их нужно исполнять. Напрямую руководим процессом, непосредственно отдаём приказания. Примеров масса, большинство популярных языков императивны, в том числе и javascript. Ты пишешь: вот, сделай-ка переменную myVar, потом запиши туда число 5, повторяй это до тех пор, пока что-то не случится... и так далее. Возвращаясь к примеру с баней, ты теперь - начальник бригады, именно говоришь какое бревно куда класть.
    Что касается процедурного и объектно ориентированного стилей, это немного о другом. Я бы сказал, что это два разных способа писать императивные программы. В процедурном случае мы организуем код, наши команды (приказы машине) в виде процедур. Процедура - набор команд. Это довольно простой способ организации кода и исторически более ранний. ООП - это чуть более сложный подход к организации кода, когда мы группируем инструкции и данные, которыми они манипулируют, вместе. Объект - это состояние (данные) плюс поведение (набор методов). Но это уже немного другая история.
    Ответ написан
    2 комментария
  • Для чего нужны замыкания (js)?

    AlexMaxTM
    @AlexMaxTM
    Ну если доступным, языком, то тогда на примере.
    Например, надо выводить в лог сообщение, а также номер строки и время прошедшее с момента зарузки страницы.

    Если не использовать замыкание, то надо определить следующую функцию
    function log(timespan, lineNumber, msg) { 
       console.log(linNumber + " " + timespan + " " + msg;
    }

    и две переменные
    var start = Date.now();
    var lineNumber = 1;

    Вызываем log так
    log(Date.now()-start, lineNumber++, "один");
    log(Date.now()-start, lineNumber++, "два");

    Очевидно, что это неудобно.

    Если использовать замыкание, то пишем так
    var log = (function () {    // функция 1
       var start = Date.now();  // текущее значение сохранятся в start 
       var num = 1;             // также используется в замыкании в функции 2. 
       return function (msg) {  // функция 2 - сохраняется в var log
          console.log(num++ + " " + (Date.now()-start) + " " + msg);
       }
    })();    // () -- вызываем функцию 1

    Вызываем так
    log("один");
    log("два");

    Результат
    lineNumber   timespan     msg
    ------------------------------
    1            0            один
    2            1            два

    Т.е. замыкание — это способ передачи данных в функцию.

    Подробнее о замыканиях см Mozilla Developer Network
    Примет взят отсюда
    Ответ написан
    Комментировать
  • В чем профит юзать TypeScript с React?

    JN0iZzze
    @JN0iZzze
    Можно прийти к неожиданным выводам если заменить в вопросе слово "Typescript" на "Строгую типизацию"
    Ответ написан
    Комментировать
  • В чем профит юзать TypeScript с React?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Вам осталось немного дожать мысль и понять в чем профит строгой типизации.
    Ответ написан
    1 комментарий
  • Что значит плоский код?

    @afanasiyz
    Javascript-разработчик
    Код, который написан и читается, словно он вовсе не асинхронный (все вызовы друг за другом).

    пример из js
    const parseAdminsData = async ()=>{
      const token = await getToken();
      const users = await getUsers(token);
      const admins = users.filter(({isAdmin})=>isAdmin);
      return admins;
    }


    вот тут два асинхронных запроса, но в коде они выглядят просто как вызовы функций. (без колбэков)
    Ответ написан
    10 комментариев
  • Какими знаниями должен обладать IoT разработчик?

    @potan
    Функциональный программист
    Минимальными - знание языка программирования (лучший вариант Rust или Purescript, но сейчас модны C, js и питон), и прямые руки, что бы не сжечь устройство что-то не так как надо воткнув.
    На более серьезном уровне надо уметь работать с очередями сообщений (обычно MQTT), понимать конкурентное программирование (Erlang, Rust), разбираться в безопастности и предствалять какие бывают уязвимости. А так же владение электроникой.
    На совсем продвинутом - знакомство с линейной логикой и системами proof assistant, так как в этой области может тремоваться очень высокая надежность.
    Ответ написан
    2 комментария
  • Задачи или что-нибудь еще по сетевому программированию на .net?

    Griboks
    @Griboks Куратор тега C#
    Сетевой чат, выделенный сервер для какой-нибудь игры, система контроля версий, блокчейн.
    Ответ написан
    Комментировать
  • Задачи или что-нибудь еще по сетевому программированию на .net?

    petermzg
    @petermzg
    Самый лучший программист
    Напишите свою реализацию WCF с транспортом через TCP и горячим добавлением ServiceContract в дуплексный канал.
    Ответ написан
    Комментировать
  • Задачи или что-нибудь еще по сетевому программированию на .net?

    arxont
    @arxont
    C# программист
    https://eax.me/programming-language-learning/
    Советы и примеры задач, которые помогут вам в освоении нового языка программирования

    Сети и протоколы
    Ответ написан
    Комментировать
  • Ошибка синтаксического анализатора(ASP.NET MVC), что делать?

    andrewpianykh
    @andrewpianykh
    Соответствие пространств имен в Global.asax.cs и Global.asax проверьте. Должно быть GameStore.MvcApplication.
    Ответ написан
    1 комментарий
  • Что написать новичку на Golang для практики?

    Ответ написан
    Комментировать
  • Как изменить размер изображения через php?

    @ozornick
    Нельзя. Да и GD в основном поставляется с php (либо легко ставится).
    $old = imageCreateFromJpeg($file);
            // Размеры старой картинки
            $old_w = imageSX($old);
            $old_h = imageSY($old);
        // Новый размер должен быть в пределах 300х300
        // Y X нужно просчитать
            if ($old_w <= 300 || $old_h <= 300) {
                $new = imageCreateTrueColor($image_x, $image_y);
                imageCopyResampled($new, $old, 0, 0, 0, 0, $image_x, Y, X, $old_h);
                header('Content-type: image/jpeg');
                imagejpeg($new, 'newfile.jpg', 75);
                imagedestroy($new);
    }
    Ответ написан
    3 комментария
  • Как написать свою функцию транслитерации на php?

    ewgenio
    @ewgenio
    Всё по чуть чуть
    Ну раз нужен велосипед . То я другим путем это вижу вообще:
    <?php
    
    function transLit($text){
    $alfavit = array('а'=>'a', 'б'=>'b', 'в'=>'v', 'г'=>'g', 'д'=>'d', 'е'=>'ye', 'ё'=>'yo', 'ж'=>'zh', 'з'=>'z', 'и'=>'i', 'к'=>'k', 'л'=>'l','м'=>'m', 'н'=>'n','о'=>'o', 'п'=>'p','р'=>'r', 'с'=>'s', 'т'=>'t', 'у'=>'u','ф'=>'f','х'=>'kh', 'ц'=>'ts', 'ч'=>'ch', 'ш'=>'sh','щ'=>'tch', 'ъ'=>'"', 'ы'=>'y', 'ь'=>'`', 'э'=>'eh', 'ю'=>'yu', 'я'=>'ya');
    $text_a = preg_split('//u', $text, -1, PREG_SPLIT_NO_EMPTY);
    $text = '';
    foreach($text_a as $val) {
        $text .= (isset($alfavit[$val])) ? $alfavit[$val] : $val; 
    }
    return $text;
    }
    $text = "Привет мир! Как дела?";
    echo transLit($text);
    ?>


    Вывод:
    Пrivyet mir! Кak dyela?

    UPD:
    Не забудьте про регистр букв, это уже вам задачка )
    Ответ написан
    1 комментарий
  • Хочу стать backend разработчиком, что учить?

    @lem_prod
    Я бы советовал смотреть в сторону Python или PHP. Сам в свое время начинал с js, потом были С++, Java, PHP.
    Остановился на последнем, хотя долго время сильно хейтерил его)
    JS в каком то смысле остается любимым, с него начинал обучение, его синтаксис позволяет довольно легко писать некоторые вещи.
    Но ООП в JS это танцы с бубном, честное слово, и что-бы не говорили про ES2015, ES6, пока JS еще далеко до нормального ООП.
    Я не хочу повторятся, рассуждений на эту тему предостаточно.
    https://habrahabr.ru/post/191646/
    Node.JS для крупных Enterprise-проектов?
    Стоит ли ставить крупный сайт на node.js? Не рано ли?

    По поводу, что учить...опять же Python или PHP, базы - любая SQL, лично мне PostgreSQL нравится, потом начинайте осваивать основы какого то фреймверка, если Python - django, если PHP - Yii2, Laravel, Symfony, у первого довольно большое русскоязычное сообщество, после ищите работу и набирайтесь опыта.
    Ответ написан
    Комментировать