• Зачем прописывать методы в Interface когда можно так же в классе?

    @Mercury13
    Программист на «си с крестами» и не только
    Ответ явоспецифичный. Потому что один класс может реализовать сколько угодно интерфейсов, но наследуется лишь от одного класса.

    Ответ концептуальный. Ромбическое наследование. От А наследуются B и C, от них обоих наследуется D.
    1) Если в A есть поле, в D что, это поле будет в двух экземплярах? А если оно protected и в B мы добавили метод, который его меняет?
    2) Если B и C переопределяют какой-то метод foo(), как быть D? А если нужна и версия B.foo(), и C.foo(), и они обе вызывают A.foo — получатеся D.foo вызовет A.foo дважды? А если в C есть второй метод bar(), который вызывает foo() и начинает вести себя не так, как надо, если мы берём реализацию B.foo()?
    В общем, множественное наследование — хорошая штука, но ромбическое — штука опасная. В языке, где любое множественное наследование неизменно ромбическое, всё, что остаётся — делать такие условия, при которых ни 1, ни 2 не сработает.
    Одно из таких условий — унаследоваться от одного класса и нескольких интерфейсов. 1) У интерфейса нет полей, и 2) эталонная реализация, существующая в некоторых языках программирования, в любом случае менее приоритетна, чем конкретная реализация из класса. Вызывать ту и другую нет смысла: если программист написал свою сверх эталонной — значит, он хочет сделать то же другим путём.
    Ответ написан
    Комментировать
  • Что же лучше процедурный подход или ООП?

    kompi
    @kompi
    nullstack devoops
    ИМХО, ООП - это по сути методология, главный профит которой заметен в долгоживущих/сложных проектах.
    Дополнительный слой абстракции раскрывает свой потенциал с ростом сложности проекта.
    При использовании ООП мы получаем более "чистый" и строгий код, что, в свою очередь, напрямую влияет на уменьшении издержек при дальнейшей поддержке и развитии проекта.
    Т.е. всё зависит от маштаба и сложности проекта, и выделяемых на него ресурсов. Для того же hello world, очевидно, что ООП избыточно.
    Ответ написан
    Комментировать
  • Что же лучше процедурный подход или ООП?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Все имеет свою цену. Не существует лучшего подхода просто самого по себе.
    Существует задача, требования к задаче и от этого уже отталкиваться какой метод в конкретном случае будет удобнее.
    Поэтому не нужно искать теоретических выводов.
    Ответ написан
    1 комментарий
  • Как реализовать данные ячейки?

    aliencash
    @aliencash
    Партизан
    Комментировать
  • У JAVA есть будущее?

    heksen
    @heksen
    будущее есть у всего если оно развивается
    Ответ написан
    1 комментарий
  • Codewars - поможет ли?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Сам там балуюсь в свободное время. С точки зрения фронтенда он не так полезен, т.к. однобоко задействуется язык. Тем не мнее для глубокой проработки алгоритмов он вполне годится и полезен.

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

    alone_lion1987
    @alone_lion1987
    Веб-разработчик
    Ответ написан
    Комментировать
  • Как себя обезопасить?

    dom1n1k
    @dom1n1k
    То есть сам-то с заказчика взял половину денег вперед (он рисковал, что сбежишь с баблом :), а сейчас жмешься показать вторую половину работы? Как-то нехорошо.
    Кроме того, заказчику именно сейчас пропадать уже особого смысла нет, потому что в верстке наверняка есть баги, наверняка будут замечания - удобнее, чтобы подправлял это сам автор.
    Просто заливай и показывай код как есть.

    P.S. Я не учитываю только случаи, если в процессе работы уже были какие-то конфликты и есть конкретные основания полагать, что возможны проблемы.
    Ответ написан
    Комментировать
  • Считаюсь ли я программистом?

    Hyubert
    @Hyubert
    JS
    Извиняюсть что так много, но тут полное разъяснение.

    Web Developer

    Синонимы: веб-разработчик, веб-инженер

    Обычно, подразумевает использование каких-либо CMS. Некоторые люди на полном серьёзе считают, что начинающие используют «простые CMS», а эксперты – «продвинутые CMS». Хинт: если человек спрашивает – Какую CMS используете? у компании программистов в конференц-зале – вероятно, он полный нуб. И это не обвинение, а констатация факта. Серьёзные современные проекты не используют CMS, ну разве что в качестве вспомогательного инструмента. Wordpress для ведения блога компании – да, возможно. Wordpress в качестве магазина – уже сомнительно. «Социальная сеть на Joomla» – фантазии подростка. CMS имеют свое место на рынке, но они давно перестали быть «государствообразующим» элементом.

    «Делать сайт на CMS» примерно тоже самое, что «клепать дизайны под ThemeForest». «Копейка рубль бережёт!» – Nuff Said.

    Веб-инженер занимается контентом, «правит» вёрстку, делает разное и (occasionally) программирует. Web Developer – это низший уровень из всех возможных «веб-разработчиков». В случае с фрилансом, под веб-разработчиком, обычно, подразумевается «человек-оркестр», а точнее – «человек-батрак».

    CSS / HTML Developer / Markup Developer

    Синонимы: верстальщик

    Должность, на которой требуется верстать дизайн. Требования к знанию JS и программирования минимальные или отсутствуют. Желательно необходимо знание основ дизайна, т.к. дизайн почти никогда не переводится из PSD в HTML один-к-одному. «Pixel-Perfect» – фраза-«звоночек». Маркер менеджера-самодура, ни имеющего ни малейшего понятия о том, как работает браузер и замеряющего качество работы попиксельным (с зумом!) сравнением PSD макета и HTML страницы. Попытки объяснить разницу между рендерингом шрифта в фотошопе и в браузере, обычно, воспринимаются как «споры вместо работы». Избегайте «попиксельных» вакансий всеми силами.

    Верстальщик всегда дорабатывает за дизайнером. Веб-программист всегда дорабатывает за верстальщиком. Соседние пары в этой цепочке почти всегда недолюбливают друг-друга по этой причине.

    FrontEnd Designer / Web Designer

    Синонимы: веб-дизайнер

    Самизнаетекто™. От специалиста требуется знание визуального дизайна (возможно, дизайна интерфейсов), знание типографики, владение Photoshop. Знание JS, обычно, не требуется.

    На западном рынке, дизайнеры обычно занимаются и вёрсткой. Во-первых современная вёрстка, с учётом респонсив- и адаптив- приставок и анимаций посредственно описывается статической картинкой. Вы часто видели дизайнера показывающего анимацию и мобильную версию? Я тоже. Обычно, их возможности ограничиваются выбором из библиотечных анимаций (подобранных программистом!). Во-вторых (но по той же причине), настоящему специалисту часто оказывается проще сделать дизайн сразу в виде вёрстки. Зачем делать работу X + Y, если можно обойтись Y?

    На нашем рынке, ввиду технологического отставания, дизайнеры и верстальщики – разные люди.

    Interface Developer / UI-UX Designer

    Похоже на предыдущий вариант, но с упором на дизайн интеракций. Специалисты на этой должности, обычно, много общаются с программистами, с клиентами, с менеджерами, потом опять с программистами... По этой причине, желательно знание основ разработки ПО и коммуникативные навыки. Очень часто, вакансия также требует знания специфики мобильной разработки, т.к. двух UI/UX экспертов нанимают довольно редко. Имейте в виду, что по этому направлению сложно найти материал для самообучения, что может идти как в плюс (меньше конкуренция) так и в минус (сложнее освоить). Если же вы способны учиться на примерах – проблем быть не должно.

    Mobile / Tablet FrontEnd Developer

    Должность для разработчика, специализирующегося на мобильных устройствах. Требуется знание специфики платформ IOS и Android. React Native – современный вариант этой специализации, позволяющий использовать веб-технологии для создания нативных приложений. Хинт: веб-приложения, гибридные приложения, нативные приложения и нативные приложения на веб-технологиях – это всё разные вещи.

    FrontEnd Developer / Engineer

    Синонимы: фронтендщик, фронтенд-разработчик

    Обобщённое название должности для разработчика, владеющего HTML / JS / CSS. Обычно встречается в небольших компаниях, где на одного человека возлагается широкий спектр задач. Знание дизайна, вероятно, не требуется, но будет идти как бонус. В современных условиях, всё чаще заменяется на титул конкретной технологии: jQuery Developer, Backbone Developer, React Developer, Angular Developer... Умения программировать и верстать входят в пакет требований.

    JS Developer / FrontEnd Programmer

    Синонимы: JS разработчик* / JS программист

    То же, что и предыдущее, с большим упором на программирование и меньшим на вёрстку и дизайн. Вообще, термин Developer (Engineer в меньшей степени) вместо Programmer, может означать что программирования будет меньше, а «всякой всячины» – больше. Кроме случаев, когда язык программирования указан явно (JS developer ~= JS programmer).

    JS Developer может означать и FullStack (см. ниже). В этом случае, компания, вероятно, планирует определиться с вашей специализацией позже – когда будут ясны ваши сильные и слабые стороны. Или же когда иные рабочие места распределятся. Поэтому, JS Developer почти всегда идёт в паре с Junior или Senior / Middle.

    FrontEnd SEO expert

    Редкая должность, на которой требуется оптимизировать HTML код согласно требованиям и пожеланиям поисковых систем (Google / Yandex). Специфические знания: микро-форматы, микро-разметка. Учитывая, что SEO вымирает и заменяется классическим маркетингом – рекомендую избегать всего, что содержит данный акроним. Если поиск работы не ваше хобби, конечно.

    FrontEnd Accessibility expert

    Упор на оптимизацию сайта под специальные ридеры (например, для людей с ограниченным зрением). Исключительно редкая должность. Занесена в Красную книгу. Встречается только на крупных проектах.

    FrontEnd Dev. Ops

    Должность для специалиста по вопросам сборки, автоматизации, интеграции фронт-енд приложений. Встречается, преимущественно, в крупных компаниях, т.к. подразумевает довольно узкий спектр задач. Актуальные знания: Webpack / Gulp / Grunt. Со временем, у вас начнут спрашивать чем вы, собственно, занимаетесь...

    FrontEnd Testing / QA

    Должность для специалиста по тестированию / контролю качества фронтенд приложений. Встречается в крупных и средних компаниях. Актуальные знания: юнит-тесты, функциональные тесты, A/B тесты, ручное тестирование и автоматизация. Коммуникативные способности входят в список требований.

    Многие люди ошибочно полагают, что «тестировщик» – более простая работа, чем «программист». Да, иногда встречаются вакансии где можно «кликать по ссылкам» и «составлять отчёты». Но это исключения.

    Заставить Selenium NightmareJS гулять по приложению, создавая скриншоты и выполняя регресионные тесты не так уж и просто. Ведь это, по сути, фуллстек разработка. Работа ведётся сразу в нескольких средах (Electron + Chromium) и требует хороших фундаментальных знаний.

    FullStack Developer / Engineer / Programmer

    Должность для эксперта по полному стеку веб-технологий. Подразумевает понимание клиент-серверного взаимодействия, опыт работы с базами данных, знание асинхронного программирования и др. Выбор серьёзно настроенных людей.

    FullStack делится на две категории: FullStack-JS и всё остальное. В первом случае, как несложно догадаться, на сервере и на клиенте используется JS. Во втором случае – на сервере используется Ruby / Python / PHP.

    Для начинающих, чтобы не распыляться между разными языками и платформами, настоятельно рекомендую отдавать предпочтение первому варианту (по возможности). Учить сразу несколько языков – работа на износ.

    FullStack JS предполагает использование феб-фреймворков на базе NodeJS. Это может быть монолитный фуллстек фреймворк (типа MeteorJS), реактивный бекенд с минималистичным клиентом (типа HorizonIO) или сборка из независимых библиотек (типа KoaJS + ReactJS). Все они имеют свои преимущества и недостатки.

    FullStack JS часто используется в приложениях реального времени: чаты (а-ля Slack / Gitter), финансовые приложения (масштабируемость, PayPal...), игровые сервера. Возможность пушить информацию на клиент (создавая риал-тайм) практически «из коробки» – основной двигатель роста этой технологии.
    Ответ написан
    Комментировать
  • Считаюсь ли я программистом?

    Ни в коем случае не стоит упоминать слово "программист". А то придется отбиваться от друзей и родственников, просящих отремонтировать комп или почистить от вирусов.
    Ответ написан
    4 комментария
  • Считаюсь ли я программистом?

    Ну если без философии, то программистом считается человек, который работает с языками программирования.
    html и css - это языки разметки. В них нет логики.
    js, php, c# и др. - это языки программирования.
    Если Ваш фронтенд ограничивается лишь html и css, то Вы скорее верстальщик нежели программист.
    А если с философией, то программист - в первую очередь человек с отличным от обычного образом мышления, который может алгоритмировать задачи, упрощать и универсализировать. А не тот кто "задрит" над кодом круглыми сутками.
    Ответ написан
    Комментировать
  • Считаюсь ли я программистом?

    @lotrop
    Если ты пишешь на javascript, то да.
    Ответ написан
    Комментировать
  • При наведении на один блок появлялся другой?

    aliencash
    @aliencash
    Партизан
    Да вы издеваетесь! codepen.io/aliencash/pen/GNVoNp
    Ответ написан
    Комментировать
  • Как оформить всплывающий инпут?

    lacrim
    @lacrim
    Отшибленный на всё голову экспериментатор.
    Скрываем стандартный селектор:

    -webkit-appearance: none;
      -moz-appearance: none;
      -ms-appearance: none;
      appearance: none!important;


    Ставим свой картинкой на фон:

    background: url('/images/arrow.png') no-repeat right center;


    Profit!
    Ответ написан
    Комментировать
  • Как оформить всплывающий инпут?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    эта вещь называется select
    Ответ написан
    1 комментарий
  • Как добавлять иконки через юникод?

    PavelMonro
    @PavelMonro
    А надо так:
    #contact p:before {
    font-family: FontAwesome;
      content: "\f2ba";
    }
    Ответ написан
    1 комментарий
  • Как сделать такую подсветку инпута?

    isqua
    @isqua
    Научу HTML, CSS, JS, BEM и Git
    input:focus
    Ответ написан
    Комментировать