Задать вопрос
  • Какой проект сделать новичку чтобы вникнуть во фронтенд и бекэнд и быть востребованым на рынке труда?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Ой как много ошибок. Давайте же их разберем.
    1) На сегодняшний день ни один новичок, особенно в веб или околовеб не является востребованным по определению. Рынок невероятно перенасыщен джунами, готовыми работать за пачку дошика с сосиской. Востребованным может оказаться только программист с большим опытом работы с нужными технологиями и огромным багажем знаний.
    2) Одного проекта для вникания во все не хватит. Их нужно несколько, желательно десятков.
    3) Не лезьте во все сферы. Фронтэнд и бэкэнд - это разные профессии, есть те, кто занимаются и тем и тем, но они тратили на изучение обеих областей огромное колл-во времени и все равно имеют знания в каждой из областей ниже конкурентов с таким же опытом. Выберите одно направление и двигайтесь в его сторону, если у вас нет минимум 3 года на обучение.

    Но если хотите вот прям план:
    todo, многие рекомендуют потому что помогает освоить основы
    Интернет магазин, более глубоко помогаем освоить язык
    RESTfull api (для бэк), например

    ЗЫ JavaScript пишется слитно.
    Ответ написан
  • Как обосновать необходимость серверной?

    paran0id
    @paran0id
    Умный, но ленивый
    1. Убраться уже в серверной
    2. Выкрутить обороты вентиляторов на максимум, чтоб выло, как боинг 747
    3. Пожаловаться на отсутствие кондиционирования (если это так)
    4. Расписать риски потери денег и данных, да так, чтобы тебе потом не сказали, что ты недостаточно убедительно их пугал (было в моей практике и такое).
    5. Прикинуть бюджет на обустройство серверной, но с запасом, чтобы можно было "ужаться"
    Ответ написан
    1 комментарий
  • Что сейчас востребовано на фрилансе?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    На фрилансе востребованы люди, способные самостоятельно проанализировать заказы и сделать выводы.
    Ответ написан
    Комментировать
  • Зачем нужно ООП?

    @UnformedVoid
    Разработчик ПО
    ООП задумывалось как подход для декомпозиции кода на модули — классы. Каждый класс выполняет свою функцию и код остаётся чистым. Это в идеале. Но в реале, ООП устраняя сложности процедурного программирования, добавляет свои. Всё как вы и описали. Идеи, описанные в книжках, в реальных примерах не имеют применений. Для написания хорошего ООП кода нужно много знать и хорошо понимать абстрактную сторону. Плюс, ООП реализовано множеством способов. Популярные реализации ООП (Java, C#) по-сути являются Класс-Ориентированным Программированием. Помимо этого ООП увеличивает объём кода. Также, постулаты на котором, основано текущее (популярное) ООП создают предпосылки для хрупкого кода. Например, наследование. Изначально наследование подразумевалось как метод для переиспользования кода. Но со временем стало понятно, что большие иерархии классов ведут к непредсказуемым ошибкам. Если обнаруживается ошибка в базовом классе при наличии уже большой иерархии, её исправление чревато появлением сложных ситуаций с падением модулей завязанных на него. Можно привести другие примеры, но это тема для целой статьи, а возможно и для нескольких. Сейчас в языки ООП внедряются фичи из функционального программирования. Функциональное программирование базируется на идее композиции функций. ООП сейчас переходит (или уже перешло) от наследования к композиции объектов. То есть рекомендуется использовать композицию вместо больших иерархий наследования. Функциональное программирование лишено проблем ООП. Многие вещи, которые в ООП надо специально изучать (например шаблоны проектирования, внедрение зависимостей), в ФП являются либо основополагающим принципом, либо естественно выплывающим следствием (в ООП тоже много хороших практик выплывают естественным образом, однако, чтоб понять их естественность приходится хорошенько вглядываться). ФП очень многое даёт из коробки. ООП — неплохая штука, однако оно отживает свой век. ФП позволяет с гораздо меньшими затратами писать надёжный, расширяемый, краткий, элегантный и эффективный код.

    Прошу не воспринимать моё отношение к ООП как негативное — у него есть свои плюсы, своя ниша. Плюс, в контексте ООП люди смогли изучить очень многое, ведь ООП навело их на многие мысли, создало необходимость в изучении структуризации и модуляризации кода. В контексте ФП это не было бы так очевидно (например, внедрение зависимостей в рамках ФП вообще не интересно изучать, так как в ФП — это просто передача параметров функции, то что мы итак понимаем). Так что всему своё место и время.
    Ответ написан
    7 комментариев
  • Зачем нужно ООП?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Прочитайте "Чистый код" Роберта Мартина, там это доходчиво объясняется. Все существующие парадигмы программирования, паттерны проектирования и архитектурные принципы существуют ровно с одной целью - снизить сложность сопровождения и развития большой кодовой базы.
    Ответ написан
    Комментировать
  • Как еще ускорить верстку?

    @jamtuson
    Все фигня. Ускорить верстку можно на порядок, если не смотришь на экран после каждого изменения.

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

    @manokhin
    По поводу адаптива
    Гугли в сторону smartgrid Дмитрий Лаврик. Увеличишь скорось на x2.(это как раз с миксинами связанно).
    Препроц pug, haml, jade, выбирай у котороги синтексис проще сам использую pug для него желательно gulp
    Посмотри в сторону time menedgment.
    Техника помидора
    Сделай правило если сидишь над блоком больше n- минут переходи к другому(имеется ввиду если делаешь какие-то исправления и погоняешь под пиксельперфект), пусь будут недочеты, подправишь в самом конце.
    Ответ написан
    Комментировать
  • Как эффективно выучить технологии для backend'a?

    @frozen_coder
    Java-developer
    Я за изучение через практику. Поэтому вот вам несколько ссылок с идеями для проектов.

    1. https://eax.me/programming-language-learning/ - вот это просто огненная статья с примерами проектов для любого ЯП. Выбирайте что-нибудь по душе и пилите, в процессе изучите всё, что надо.
    2. https://proglib.io/p/project-list/ - тут дофига всякого
    3. https://habr.com/ru/post/345092/ - ну и тут чуток
    Ответ написан
    Комментировать
  • Что делать, когда умеешь программировать, но нет идей?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Открываешь upwork, ищешь подробно описанные заказы, реализуешь их.
    Ответ написан
    Комментировать
  • Как написать документацию для приложения?

    lxsmkv
    @lxsmkv
    Test automation engineer
    User story описывает цели которые могут быть достигнуты с помощью приложения. Они определяют пользу. Например, чтобы решить какую задачу выполнить сегодня, пользователь хочет определить самые приоритетные задачи. Польза приложения тут в помощи принятию решений по задачам. Тут нужно думать максимально с т.з конечного пользователя. Зачем он что-то делает и как продукт может помочь ему в этом.

    Use cases будут включать в себя описания какие взаимодействия с приложением пользователь может произвести чтобы достичь своей цели. Например: Отсортировать по приоритету. Отфильтровать по тегам. И пр. По юзкейсам можно проверить, что приложение действительно предоставляет заявленные функции заявленным образом.

    По юзкейсам можно проводить системное тестирование. Т.е. есть заявленный сценарий, работает он или нет.

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

    По функциональной спецификации пишется реализация, и сам код приложения уже покрывается юнит-тестами.
    Ответ написан
    2 комментария
  • Стоит ли заморачиваться с Clojure?

    danmiru
    @danmiru
    Ковырял немного с целью ознакомиться, разворачивал java-приложение на GAE.
    В целом интересно. Не жалею.
    Опять-таки, в связке с Емаксом есть куча плюшек.
    Рекомендую ли? Как хобби, если интересен лисп, с целью ознакомления — безусловно.
    С коммерческими целями? Трудно сказать, в самом деле. Как первый и единственный язык кажется рискованным.
    Ответ написан
    1 комментарий
  • Как конвертировать xml в csv в функциональном стиле?

    sergey-gornostaev
    @sergey-gornostaev Автор вопроса, куратор тега Clojure
    Седой и строгий
    xandox хотелось примерно такого
    (ns su.gornostaev.rstatfr2csv
      (:use [clojure.xml :only (parse)])
      (:use [clojure.string :only [index-of join split]])
      (:use [clojure.java.io])
      (:import java.io.File))
    
    (defn parse-cmd
      [args]
      (when-let [file-name (first args)]
        file-name))
    
    (defn parse-file
      [file-name]
      (if (nil? file-name) nil (parse (File. file-name))))
    
    (defn format-datetime
      [dt]
      (let [[date time] (split dt #"\s")]
        (str (join "." (reverse (split date #"\."))) " " (subs time 0 (index-of time \:)) ":00")))
    
    (defn merge-counters
      [counters]
      (map
        (fn [item]
          (let [[k & v] item]
          (assoc (reduce (fn [acc val] (merge-with + acc val)) (first v)) :dt k)))
        (reduce
          (fn [acc val] 
            (let [{:keys [dt in out]} val]
            (update-in acc [dt] (fnil #(conj % {:in in :out out}) []))))
          {} counters)))
    
    (defn parse-counters
      [sensor]
      (map
        (fn [counter]
          {:dt (format-datetime (:datetime (:attrs counter))) 
           :in (read-string (:realin (:attrs counter))) 
           :out (read-string (:realout (:attrs counter)))})
        sensor))
    
    (defn parse-sensors
      [shop]
      (map
        (fn [sensor]
          {:name (:name (:attrs sensor)) :counters (merge-counters (parse-counters (:content sensor)))})
        shop))
    
    (defn parse-shops
      [dom]
      (map
        (fn [shop]
          {:name (:name (:attrs shop)) :sensors (seq (parse-sensors (:content shop)))})
        dom))
    
    (defn parse-doc
      [doc]
      (parse-shops
        (->> 
          doc
          :content
          first
          :content)))
    
    (defn save-csv
      [data]
      (with-open [w (writer (file "output.csv"))]
        (doseq [shop data]
          (doseq [sensor (:sensors shop)]
            (doseq [counter (:counters sensor)]
              (.write w (str (join "\t" (concat [(:name shop) (:name sensor)] (vals (into (sorted-map) counter)))) "\n")))))))
    
    (save-csv (parse-doc (parse-file (parse-cmd *command-line-args*))))
    Ответ написан
    Комментировать
  • Как правильно использовать умножение матриц в clojure?

    @void_phoenix Автор вопроса
    Вообще все выглядит так, как будто переопределили оператор умножения с математического, на простое перемножение элементов матриц, как в сложении. Только я не очень понимаю, зачем это было сделано.
    Ответ написан
    Комментировать
  • Где можно найти актуальные на 2014-й год материалы по Clojure?

    hrls
    @hrls
    все что надо, это Joy of Clojure
    только вдуматься - книга по кложе, второе издание! (та хрень с гусем на обложке не в счет, книга Чаза Эмерика много лучше имхо)

    я даже напиратил it-ebooks.info/book/4423
    Ответ написан
    1 комментарий
  • Где можно найти актуальные на 2014-й год материалы по Clojure?

    @protven
    Учебников и книг, как таковых в открытом доступе нет. Можно напиратить, но это уже сами, не маленький. В числе прочего есть уже и перевод на русский язык Programming on Clojure от Чака Эмерика.

    Вот тут alexott.net/ru/clojure есть большинство актуальных (и по сей день) источников информации о кложуре, из числа открытых источников.
    Ответ написан
    Комментировать
  • Не запускается ClojureScript REPL. Как запустить?

    @protven
    Что-то у вас явно не так пошло. Вы точно ./script/bootstrap выполни там, где надо ?
    У вас хватает директории lib, где собсно и лежат джарники с кложурой. Что, кстати, вполне очевидно, если глазками посмотреть в тот скрипт, который вы запускаете. Пройдите еще раз все по шагам из инструкции. У меня вот лично, все запустилось.
    Ответ написан
    Комментировать
  • Как сделать Desktop-приложение на Clojure?

    @endemic
    Ответ написан
    Комментировать
  • Как сделать Desktop-приложение на Clojure?

    flamefork
    @flamefork
    Фигачу в PLEX
    Не совсем то, но можно еще попробовать связку ClojureScript + node-webkit (или atom-shell).
    Не нативно, не совсем Clojure, зато без явы и писать человеку с веб-ориентированными навыками проще.
    Ответ написан
    1 комментарий