• Git на продакшин сервере?

    @developer_as
    Удобен для использования Capistrano. Не могу судить за другие т.к. тесно только работал с этой системой. Версии релизов храняться на сервере и в случае неоходимости можно быстро откатить код. Также при каждом релизе не нужно лезть на сервер и делать пулл.
    Ответ написан
    1 комментарий
  • Куда двигаться дальше senior разработчику? Новый язык, технологии, opensource, стартап?

    @L17217
    Сеньором вы будете как раз тогда когда будете знать куда следует двигаться.

    26 летних сеньоров не существует. Это фантастика

    Вы только поняли что дело не в языках и не во фреймворках? Поздравляю вы только что перестали быть ДЖУНОМ
    Ответ написан
    2 комментария
  • Куда двигаться дальше senior разработчику? Новый язык, технологии, opensource, стартап?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Как вы это делаете?! За 17 лет работы в ИТ у меня ни разу не возникало вопроса "Куда двигаться?", только "Где взять времени на освоение всего этого бесконечного изобилия технологий, углублённого изучения уже знакомого и реализацию множества идей?"
    Ответ написан
    4 комментария
  • Как обстоят дела с веб-разработкой и программированием на Mac Os?

    a13xsus
    @a13xsus
    Lazy developer
    Дык это можно сказать идеальная среда для этого. Как программная, так и аппаратная.
    Ответ написан
    Комментировать
  • Как запоминать код, который писал две недели назад?

    @danSamara
    Значит вы ещё не программист, а кодер. Это не страшно, вопрос опыта.
    Главное отличие программиста от кодера - программмист пишет код в голове - набивание кода в IDE это самое нудное в программировании, весь смак - в проектировании. А вот кодер пишет код кусочками, которые берёт из интернета или из собственных внезапных озарений.

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

    ПРОФИТ!
    Ответ написан
    Комментировать
  • Как запоминать код, который писал две недели назад?

    @nirvimel
    1. Как писать много кода, оставляя его простым, как в начале?
    2. Также советую прочесть "Совершенный код" С.Макконнелла.
    3. Качественный код не требует того, чтобы его запоминали. Качественный код может быть забыт сразу после того, как он начнет проходить все тесты. Держать в голове нужно только программные интерфейсы, но даже не все, а только, используемые на текущем уровне абстракции.
    Ответ написан
    Комментировать
  • Как запоминать код, который писал две недели назад?

    @evgeniy_lm
    Это потому что вы просто тупо пишете код, а вам нужно разрабатывать (проектировать) приложение.
    Ответ написан
    Комментировать
  • Как писать много кода, оставляя его простым, как в начале?

    @malbaron
    Декомпозиция
    И
    https://habrahabr.ru/post/269589/

    23a0de4d93d747c89f1e216077c2d604.jpg
    Ответ написан
    Комментировать
  • Как писать много кода, оставляя его простым, как в начале?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    1) Документируй
    2) Абстрагируйся всегда максимально
    3) Пиши классы по принципу "черного ящика"
    4) Один класс решает одну конкретную задачу, не стоит городить комбайны.
    Ответ написан
    5 комментариев
  • Как научиться писать самостоятельно код?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В школах и институтах учили строить алгоритмы, еще когда рисовали блок-схемы.
    Это не зависит от языка программирования - нужно просто составить алгоритм для решения задачи. Изучая различные аспекты языка программирования, различные библиотеки, фреймворки и так далее вы просто приобретаете знания о дополнительных инструментах, которым нужно пользоваться для решения задачи.

    Но само решение придумывает программист, а не язык программирования.

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

    Например, взять какую-нибудь игрушку с множеством товара и найти самый выгодный или дешевый товар. Вам будет понятна цель - найти нужный вам товар
    При этом не будет важно в каком виде - в виде веб-странички, в виде простого текста на экран, или в виде заполненной таблички в базе данных.
    При этом не будет важно какими инструментами вам нужно воспользоваться.
    Главное, что вы осознаете что именно хотите получить. И пишете программу, которая выдает вам результат, используя имеющиеся знания.
    Чем больше знаний, тем удобнее в конечном счете пользоваться тем что вы написали и тем быстрее и проще вам это писать.
    Ответ написан
    Комментировать
  • Как научиться писать самостоятельно код?

    @bnytiki
    Практикуйся уже.
    За год "изучения" ты уже должен был писать и писать и писать.
    JS - один из языков с низким порогом входа - не должно быть проблем с его освоением.
    Ответ написан
    Комментировать
  • Как не стать недоспециалистом?

    @mletov
    Можно читать книги, можно все время мониторить актуальные тенденции, но общения с более опытными товарищами ничто не заменит. Если не удается устроиться в компанию с сильным IT коллективом, то хотя бы на форумах почаще спрашивать "а вот так делать правильно? " или "а этот подход еще актуален?", а не удовлетворяться тем, что код компилируется и запускается. Иначе рост во многом будет в ширину, а не глубину.
    Особенно это касается вопросов, связанных не просто с написанием работающего кода, а с идеологией приложения (архитектура, ООП, масштабируемость и т д).

    На сегодняшний день проблема состоит не в нехватке информации, а наоборот, в ее избытке, а отфильтровать ее не всегда хватает знаний/опыта. Курсы Евгения Попова так популярны не потому, что люди дураки, а потому, что хорошо распиарены. Или вот я осваиваю ASP.NET MVC, нашел, как мне показалось, удобную штуку - генерацию edmx, но добрые люди на metanit.ru меня просветили, что для серьезных приложений нужно использовать Code First, иначе бы до сих пор так писал.

    Если полагаться только на самообразование, то есть риск получить нехилые такие пробелы в базовых вещах. Лично знаю людей, которые написали не одно приложение по работе с БД, неплохо знают SQL, умеют писать хранимые процедуры, но когда я упомянул слова "нормализация" и "3-я нормальная форма", вполне искренне меня спросили "что это?"
    Ответ написан
    Комментировать
  • Стоит ли учить Ruby и Rails в 2016 году?

    Стоит ли учить язык Ruby и фреймворк Ruby on Rails в 2016 году?


    Зависит от ваших целей. Лично мне было просто интересно изучать этот язык и мне он нравится.

    В мире PHP активно развивается много отличных фреймворков и библиотек. В JavaScript вообще каждый день революция, новые подходы и фреймворки растут как грибы после дождя.
    А вот про Ruby и Ruby on Rails давно ничего не слышно.


    В мире Ruby тоже есть неплохие библиотеки и фреймворки. Например, hanami (hanamirb.org) или занимательный volt (https://github.com/voltrb/volt) у которого как на клиенте, так и на сервере используется ruby код. Правда Rails довольно сильно притягивает всех своей гравитацией, к слову, в этом месяце обещали релизнуть Rails 5 с поддержкой общения с клиентом через websocket — ждём-с.

    В целом, ещё Ruby используется для Chef (автоматизация серверов), homebrew (пакетный менеджер в маках), cocoapods для разработки OS X приложений, vagrant для управления виртуальными машинами разработки, jekyll/middleman/octopress — для генерации статических сайтов, известные sass/scss тоже на ruby, хоть теперь уже и есть реализации на других языках.

    Ещё, сравнительно недавно вылез на стол и начал танцевать, соблазняя возможностью компиляции кода — руби-косплеер Crystal (https://github.com/crystal-lang/crystal). И есть RubyMotion — фреймворк для создания OS X/iOS/Android приложений на Ruby (www.rubymotion.com).

    Тут можно посмотреть список популярных библиотек — https://github.com/markets/awesome-ruby

    В общем, смотрите сами. Да, язык сейчас не на вершине волны, но он развивается и говорить о смерти пациента рано.
    Ответ написан
    4 комментария
  • Как вы используете Mac OS?

    SnapSh0t
    @SnapSh0t
    iOS-Developer
    тоже всегда пользуюсь Spotlight для поиска каких-либо программ или выполнения каких-либо операций.

    Терминал немного проапгрейдил программой "oh my Zsh" его плюсы можно найти во всемирной паутине.
    Ответ написан
  • Как вы используете Mac OS?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    Многооконность.
    Пользуюсь либо трекпадом (свайп тремя пальцами вверх и выбор нужного окна) либо мегик моус (тап двумя пальцами и выбор нужного)
    Обычно запущено 2-3 фуллскрин приложения в которых провожу больше всего времени и соответсвенно перемещение между ними лишь один свайп влево/вправо. Мелкие приложения/утилиты которые нужны лишь переодично на отдельном рабочем столе.
    Перелистывать рабочие столы приходится свайпом по трекпаду
    мегикмаус, свайп двумя пальцами

    Полноэкранный режим.
    Пользуюсь только фулскрином. Время мне нужно максимум раз в полчаса. Поэтому постоянно видеть меню бар не нужно.
    Про хром не скажу. Меня полностью устраивает сафари.

    Dock
    Можете расположить его слева или справа. Как вариант сделать выезжающим

    Launchpad.
    Группируем по папкам, радуемся. Либо, открываем лаунчпад и сразу начинаем писать название приложения.
    Лично я предпочитаю  Sportlight (ctrl+space название приложения). Наиболее часто используемые приложения в доке.
    Ответ написан
    Комментировать
  • Чем отличаются языки программирования PHP, PYTHON, RUBY?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Еще есть java, go - они тоже очень популярны.

    И на том и на том пишутся замечательные вещи!

    Go очень просто использовать - практически как замена C/C++, только более быстр в разработке. Сильно набирает популярность, достаточно низкоуровневый, чтобы на нем писать системные утилиты и большие распределенные системы. У него есть минусы (дебаггер например), но и плюсов очень много (дебаггер редко нужен).

    Java - отдельный вопрос, на нем очень удобно писать очень большие проекты, но кривая вхождения очень высока. Сам язык достаточно простой, но знание фреймворков (библиотек), как раз и составляет то, за что платит работодатель, и очень достойные деньги. Это, сильно не совру, один из самых высокооплачиваемых и рентабельных языков программирования.

    Что касается PHP - изначально язык создавался для простых проектов для WEB, как замена CGI, но вроде бы как вырос, появились объекты... Но, дальше WEB он не развивается.

    Что касается Ruby - хороший язык, большая инфраструктура (фоеймворки/библиотеки), куча всего понаписано, куча коммерческих сайтов и государственных, типа портала госуслуг Москвы, если не ошибаюсь. Немного медлителен интерпретатор, но это не повод за него не браться. На мой личный взгляд - основное неудобство, постоянный поиск нужной версии библиотеки при пересборке проекта.

    Python - отличный язык, очень богатая инфраструктура, куча коммерческих применений. На нем можно делать большие, очень большие, проекты. Очень легок в освоении. Я предпочитаю что-то быстро напрототипировать в питоне, а потом и переписывать не хочется.

    Сам программирую на Python, C, Java, PHP.
    Относительно неплохо разбираюсь в Ruby и Go, на уровне влесть в чужой проект и поправить ошибку.

    Мои фавориты - Java, Python. Присматриваюсь к Go.
    Ответ написан
    10 комментариев
  • Чем отличаются языки программирования PHP, PYTHON, RUBY?

    Freika
    @Freika
    Senior Ruby on Rails developer
    Если говорить о различиях PHP, Ruby и Python, то в первую очередь, различия в синтаксисе. Если у Ruby и Python синтаксис более аккуратный и читабельный, то PHP тут самый некрасивый.

    Далее, Ruby полностью объектно-ориентированный язык. PHP - нет, имплементация ООП в нем есть, но она все же не так хороша, как в Ruby (За Питон тут точно не могу сказать, не интересовался).

    Комьюнити. У PHP комьюнити большое за счет минимального порога входа (русскоязычное обычно ограничивается посылом в документацию, возможно мой опыт в этом вопросе устарел). У Ruby русскоязычное комьюнити небольшое, но отзывчивое. Англоязычное вообще отличное. Про Питон, опять же, сказать не могу.

    Важный момент: на Python вы сможете писать веб-приложения, серверные и десктопные приложения под разные ОС. На Ruby вы сможете писать веб-приложения и серверные приложения. С десктопом здесь похуже. На PHP вы не сможете даже демона написать для своего веб-приложения, потому что веб - это единственная сфера применения PHP. Принимались попытки приспособить его и под другие цели, но пока из этого ничего путевого не вышло.
    Ответ написан
  • Каков must have для студии по разработке?

    @UncleNug
    Работать малой командой это счастье. Когда все работают :) и есть результат.

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

    Перед перечислением напишу самое главное - команда единомышленников, должна хотеть развиваться и добиваться результата и создавать себе репутацию.

    Далее тезисно, не в порядке приоритетов, а как вспоминается:

    0) Нужна специализация у каждого и у команды (пишу как видится с учетом размера вашей команды).
    * тим лидер или старший разработчик. Он будет задавать стандарты качества и контролировать работу. Будет отвечать за архитектуру.
    * разработчик-верстальщик
    * разработчик-админ
    * разработчик-базовик
    * манагер и если людей мало, он же продажник. Должен знать все CMS, что вы будете применять. Чтобы мог без запинки показать клиенту, как создавать публикацию, редактировать и проч.

    1) 80% времени работать над коммерческими проектам и 20% времени работать над своим проектом. Для повышения квалификации как минимум. А если выстрелит - то скоро вообще не надо будет работать с клиентами :) Когда нет заказов - все работают над "своим" проектом, повышают квалификацию, применяют и тестируют новые технологии или новые нагрузки. Если вы грамотно придумаете для себя задачу, то процесс работы над ней и результаты можно использовать для продвижения своей команды. Допустим вы взялись за разработку модуля обмена данными бухгалтерия-магазин. Посмотрите какие есть решения уже на рынке для вашей CMS. Сделайте удобнее и лучше или быстрее или тупо лучше документированное решение. Это позволит встать в "магазин" модулей для CMS и вам даст новых клиентов. Когда у вас есть узкое и качественное решение вашему продажнику проще будет разговаривать с клиентом и влезать в уже существующие айтишные инфраструктуры. Переделать онлайн магазин вам никто уже не даст, а вот заменить модуль на ваш смогут.

    2) Технология производства. Особенно, если работает несколько человек. У вас должны быть единые стандарты и технологии для написания, документирования, работы с изменениями кода, своя "библиотека" решений, которые вы могли бы использовать как можно чаще. Создавать свои чеклисты для производственных этапов и по возможности автоматизировать рутинные операции.

    3) Если речь идет о вебразработке, то скорее всего надо будет отлично знать до трех из самых популярных CMS. Желательно получить сертификат/статус.

    4) Стандарты работы с клиентским проектом нужны. ТЗ, документация, обучение клиента и проч. Чтобы минимизировать трудозатраты или хотя бы минимизировать неоплачиваемые трузозатраты.

    5) Знать английский язык на уровне чтения документации минимум.

    6) и ... потихоньку добавлять себе новые направления. Уходить от чистого веба в веб+моб, или от "сайтов" в сложный е-коммерс. Идеально, когда клиентом меньше, а доходы больше. Для этого нужны глубокие знания в относительно узком направлении и два-три клиента серьезных клиента. Не старайтесь лепить много дешевых сайтов.

    Короче. Особенность и преимущество малых коллективов заключается в том, что они с одной стороны вынуждены в одном человеке концентрировать несколько ролей или областей знаний, но с другой - это обеспечит более быструю работу над проектом. Правда это хорошо, когда вы не просто коллектив, а КОМАНДА.

    Это так, тезисно.
    Ответ написан
    Комментировать
  • Каков must have для студии по разработке?

    banderos120
    @banderos120
    Играю на балалайке
    Когда-то начинали с товарищем делать сайтики, только я был "программистом", а он собирал заказы. Одни из ошибок, которые позволили загнуться нашему совместному предприятию (просуществовали мы почти 2 года) - это:
    - недостаточно опытный программист (это я), плюс, если брали помощников, то они были еще неопытнее меня.
    - не составлялся четкий план на разработку, проектирование проекта не проводилось, из-за чего по ходу дела возникали ситуации, которые можно было решить еще на этапе проектирования, но нет, приходилось тратить время уже во-время разработки. Как следствие этого - неожиданное увеличение сроков.
    - не было четких условий для заказчика, т.е. типовой договор был, но, например стоимость правок оговаривалась налету, некоторые заказчики округляли глаза и приходилось делать забеслпатно. Следствие чего заказчик был царь и бог и некоторые их долги по оплате не были отданы до сих пор.
    - желание сэкономить, нет, я понимаю, что экономить нужно, но не на том, что приносит тебе доход, по-этому дизайнеры были хреновые, помощники говеные и т.д. Из-за чего заказчик был не доволен, а срок разработки проекта очень сильно увеличивался.
    - заказы по сложности и требованиям несопоставимые со стоимостью, т.е. напарник брал сложные заказы за смешные деньги, сетуя на то, что город маленький (300 000 жителей) и никто платить не хочет, в итоге с созданием и доработками выплаты задерживались, следующие заказы брались , пока недоделаны предыдущие и получался ком, которые ничего хорошего не обещал.
    - ну и результатом всего этого стало огромное количество долгов и плохих отзывов.
    Ну вот такие были проблемы у студии "Рога и копыта" из двух человек, какие вспомнил ))
    *пы.сы. не знаю, зачем это написал, просто, что-то вспомнилось.
    Ответ написан
    5 комментариев
  • Что изучать: Ruby или Node.js?

    mr_ffloyd
    @mr_ffloyd
    Я рубист и c нодой работал мало. Гораздо больше с клиентским js'ом. Мое мнение, что лучше ruby/RoR по следующим причинам:

    1) Язык. Дизайн ruby превосходит js наголову, объективно. Просто зайдите на wtfjs.com и полистайте.

    2) Ruby ближе к функциональным языкам. А именно функциональные парадигмы сейчас все более и более актуальны в виду их эффективности в решении задач связанных с распараллеливанием и распределением нагрузки. Как пример можно привести акторы, которые получили широкое распространение в последние годы.

    2.5) Я не знаю ни одного человека успешно изучавшего haskell, который не смеялся бы над js. Может такие есть, но это редкие звери) Я это к тому, что полезнее уделять больше времени языкам, которые содержат в себе мощные и слаженные между собой идеи, вникать в эти идеи, развивать мозги. Посмотрите на Scala: мощнейший и довольно сложный язык, но изучая его просто для себя я заметил, что стал лучше писать на ruby и c/c++. Js мне такого блага не давал.

    3) В RoR среде средний уровень качества кода выше. Это мнение я слышу часто и склоняюсь к тому, что это правда. Порог входа в js сильно ниже порога входа в ruby, RoR старше и матёрее.

    4) NPM догнал rubygems количеством, но не качеством.

    5) Для большинства сайтов вполне хватит rails-based-инфраструктуры.

    6) Насчет перспективности. Технологии стремительно развиваются, но я практически уверен, что RoR будет на пике еще лет 3-5 минимум. Что будет потом - я не знаю. Но поработав с RoR вы научитесь многому у него и у самого языка. А если хочется поработать на низком уровне с сервером - я бы рекомендовал Scala/Akka, Erlang/OTP, go, clojure еще можно. После них реши вы писать код на node.js - он будет красивее и чище нежели без подобного опыта.

    In suma: RoR будет сложнее, но полезнее для мозгов. Перспективно уметь функциональщину. Главная и огромная беда node.js - в языке. Как идея он хорош.

    А вообще - главное чтобы самому хорошо было. Попробуйте ruby как язык - может несмотря на все вышесказанное он вам банально придется не по душе)
    Ответ написан
    4 комментария