• Использование интерфейсов в Java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Автору. Вы взяли какой то очень невнятный пример себе. Образно говоря интерфейс это абстракция.
    К примеру у вас есть некая игра. В игре есть транспорт. Вы задаетесь вопросом а какбы сделать так что бы не знать о том что именно это за транспорт но при этом уверенно использовать его.
    1) Вы смотрите все свои классы: легковая машина, автобус, самолет, катер, велосипед.
    2) У всех классов транспорта можно выделить общие черты. Они могут ехать вперед\назад, рулить влево\вправо, подать сигнал и т.д.
    3) Описываете интерфейс с этими выделенными общими методами. Например
    interface Transport{
       void gazuem();
       void tormozim();
       void signalim();
    ...
    }

    4) Теперь настало время реализовать этот интерфейс. Пример:
    public class Avtobus implements Transport{    
        public void gazuem() {
            //реализация особенности как едет автобус
        }
        public void signalim() {
            //тут просто школьный Фа-Фа
        }
    }
    //Велосипед
    public class Velosiped implements Transport{    
        public void gazuem() {
            //реализация особенности как будете крутить педали
        }
        public void signalim() {
            //тут колокольчиком Дзинь-Дзинь
        }
    }
    //Остальные реализации

    5) Абстрагируемся в коде от реализаций конкретных видов транспорта, т.е. работаем с ними как с черной коробкой. Например:

    Transport velik = new Velosiped();
    Transport avtobus = new Avtobus();
    ...
    Transport samolet = new Samolet();
    
    ...
    И гдето , например, все виды транспорта попали в коллапс и надо резко посигналить.
    velik.signalim(); //Дзинь дзинь
    avtobus.signalim(); // Фа-Фа
    samolet.signalim();// А тут звуков не будет но вам до лампочки и никаких ошибок не будет
    ...
    //Дальше, например, у игрока есть метод использовать.
    //Вам не нужно знать какой именно тип транспорта перед ним, вы просто делаете следующее:
    class Player{
    ...
    public void use(Object someObject){
              if(someObject instanceof Transport){
                    //Сюда попадет абсолютно любой тип транспорта
                    ((Transport)someObject).sadimsya(); //Что там внутри и как оно работает вас уже не интересует
              }
    }
    ...
    }

    Вот в целом как то так это выглядит.
    Ответ написан
  • Какая правильная структура файлов front-end проекта и почему?

    @antonowano
    Профессиональный самоучка
    • dist
    • node_modules
    • src
    • gulpfile.js
    • package.json


    src - папка со всеми исходниками верстки (html, css, js, less, coffeescript и т.д.),
    dist - папка рабочего проекта скомпилированного из исходников папки src, по команде gulp,
    gulpfile.js - скрипт компиляции рабочего проекта,
    package.json - мета данные проекта и список необходимых npm библиотек для работы gulpfile.js,
    node_modules - сторонние npm библиотеки установленные для компиляции проекта.

    Пример gulpfile.js:
    var gulp = require('gulp');
    var less = require('gulp-less');
    var cleanCSS = require('gulp-clean-css');
    
    gulp.task('default', function() {
        gulp.src('./src/css/**/*.less')
            .pipe(less())
            .pipe(cleanCSS())
            .pipe(gulp.dest('./dist/css/'))
        ;
    });


    Для такого проекта должны быть установлены 3 npm библиотеки gulp, gulp-less, gulp-clean-css.

    Это общепринятый скелетон для любого gulp-проекта. А структура папки src это по вашему желанию. Каждый делает по своему.
    Ответ написан
    3 комментария
  • Язык для работы в сфере blockchain?

    А какая есть работа в сфере блокчейн?

    Иногда мне кажется, что люди задают вопросы абсолютно не понимая предмета вопроса.

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

    На примере биткоина. Если хотите разобраться в структуре блокчейна: читайте документацию по устройству блоков и транзакций, про эллиптическую криптографию, про хеширование, base58, документацию по скрипту, который используется внутри блокчейна. Так же изучите LevelDB и BerkeleyDB.

    Если просто хотите использовать API, то язык опять таки не важен. Сейчас столько библиотек на разных языках. Даже для haskell есть несколько API, что уж говорить про популярные языки.

    К тому же вы можете сами написать библиотеку на любом понравившемся вам языке: bitcoin предоставляет REST и ZeroMQ.
    Ответ написан
    4 комментария
  • Как въехать в программирование (ООП, паттерны)?

    GTRxShock
    @GTRxShock
    Full-stack developer (Symfony, Angular)
    если программируете на php 2-3 года, то пора бы перед сном почитать РНР: объекты, шаблоны и методики программирования (Зандстра) желательно в бумажном варианте.

    + Паттерны проектирования (Фримен) для общего/наглядного понимания паттернов
    + www.phptherightway.com основные тезисы
    + Рефакторинг: улучшение проекта существующего кода (Фаулер) & https://refactoring.guru/ru на будущее, к чему стремиться :)
    Ответ написан
    4 комментария
  • Как сверстать такой треугольник?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Небольшой прямоугольник с overflow:hidden и два его абсолютно позиционированных псевдо-элемента с подобранным положением и border-radius
    Суть на картинке:
    5a9abaf4042b5532247763.png

    https://jsfiddle.net/ywh2fd3f/56/

    как-то так =)
    Ответ написан
    4 комментария