• Сколько принес Ваш open-source проект?

    leventov
    @leventov
    Забудь про мечты заработать на донате. Точка. Опен сорс + продавать поддержку - тоже полуживая модель.

    Делай опенсорс + копилефт лицензия (напр. Gpl) + продажа лицензий для Энтерпрайза (гугли license exceptions), либо опенсорс + платные проприетарные дополнения, либо вообще не опен сорс с самого начала.
    Ответ написан
    1 комментарий
  • Сидячий образ жизни кодера на самом деле ухудшает здоровье?

    copist
    @copist
    Empower people to give
    Вес потихоньку набирается, потому что сладкое обожаю. Спасибо Дмитрий Макаров за совет с кашами, но какие именно?
    Если совсем не шевелиться, то из-за застойных процессов нарушается кровообращение и как следствие плохо варит котелок. А так же боли в спине и шее. Ленивый кишечник. Дискомфорт в ногах.

    Бегать на улице не в кайф. Велика нет. Лыжи редко и вообще только зимой. Вот моё решение:
    PSM-Od3RUCE.jpg
    Пробежка 30-40 минут + гимнастика на растяжения + гантели/пресс/подтягивания + прохладный душ. В лучшем случае управляюсь за час.
    Голова работает отлично. Сплю 6 часов в сутки, не устаю. Кстати, режим сна 5 часов + 4 * 15 минут днём.

    Раз в квартал нанимаю массажистку для спины, плечей и шеи. 10 сеансов.

    На мониторе на стене смотрю фильмы или сериалы во время пробежки. Ещё там можно читать книги, но я предпочитаю читать бумажные и делать пометки на полях.

    Плавно мигающее световолокно перед глазами позволяет расслабить зрение. На столе лампа 2*18Wt очень яркая. Под потолоком 4*20Wt 4200K дневной свет.

    Два очистителя воздуха с ионизаторами. Один чистит внутренний воздух ультрафиолетом. Второй, приточный, чистит уличный воздух. Кондиционера нет.

    Играю (очень-очень редко, по разным причинам) в XBox Kinect. Специально играю только в кинектовские игры, подвижные. "Звёздные войны" очень разминают руки, а "Adventures" - ноги и спину.

    Часть времени работаю стоя. Ноут стоит на крышке террариума, а я рядом.
    Ответ написан
    6 комментариев
  • У кого из вас есть TDD или BDD в разработке, что конкретно вы делаете, когда, как к этому пришли?

    nonlux
    @nonlux
    Книгу не читал, по этому аналогий привести не смогу
    Пишу на php для веб c bdd

    1. Пишу bdd story.
    ( в моем случае это сценарии behat)
    Для меня bdd story это как функциональные и интеграционные тесты, в которых я проверяю работу всего моего продукта в целом.

    Тут вынес несколько правил для себя:
    1.1. Обязательно формулировать цель (название) сценария
    - Я вхожу в личный кабинет
    - Я создаю новую статью блога
    Это поможет отстраниться от лишнего и не превратить сценарий в кашу

    1.2. Писать на нативном языке без технических подробностей
    Я поначалу долго сопротивлялся писать, что либо кроме файлов трансляции на русском. Но потом вкурил фишку. По сути сценарии у меня превратились не просто в тесты, а мини todo list. Всегда четкий и понятный.
    А избегание технических подробностей помогает забыть о проектирование архитектуры системы на этапе написания сценария.
    И мне гораздо понятнее:
    - Я должен видеть "Отказано в доступе"
    чем
    - Статус код страницы должен быть 403

    1.3. Я(Исполнитель) сценария дурак )
    Сценарий не должен быть замудреным. От должен быть простой и не держать какие-либо данные "в голове".

    -
    2. Далее я начинаю реализовывать шаги сценария
    (писать тесты)
    - Если я имею на руках желтый (не реализованный) сценарий, то начинаю уже задумываться о технических подробностях которые лежат на поверхности:
    Например (приведенный код это псевдокод для понятности

    Я должен быть на странице "Новости"
    assert( $uri, '/news');

    Я вижу заголовок статьи "Эта прекрасная статья"
    assertTextInElement('#newsTitle", $title);

    - Если я имею на руках красный тест, то пришло время для кода..

    3. Написание практически всего кода предшествует у меня BDDSpec
    (в моем случае phpspec)

    И так, я получил ошибку от bahat. Я специально настроил утилиту так что бы она ругалась ошибками разрабатываемой системы.
    В итоге я получаю такую ошибку:
    - uri '/new' not exist

    Это для меня прямое указание к действию. т.е я должен создать новую страницу.
    В рамках моей системы уже существуют правила:
    - новая страница - это новое action у контролера.
    - action должен вернуть массив значений для шаблона
    Опираясь на это я создаю спецификацию для контроллера
    class ControllerSpec  {
      public function it_should_show_news ()
      {
        $this->newsAction()->shouldBeArray();
      }
    }


    И далее код, который пройдет этот тест:
    class Controller {
      public function newsAction() 
      {
         return [];
      }
    }


    4. После этого запустив phpspec я получил зеленый bddspec
    5. После этого cнова возвращаюсь к bddstory
    Получаю зеленый шаг
    6. Возвращаюсь на шаг 2.

    Так начинает расти система и обрастать новым протестированным функционалом.

    До bdd использовал tdd c PHPUnit и был очень доволен, пока не подсел на behat + phpspec
    Ответ написан
    6 комментариев
  • Сидячий образ жизни кодера на самом деле ухудшает здоровье?

    Как начал много зарабатывать стал больше хавать
    А также меньше двигаться
    Как результат - +12кг за 5 лет (но за компом сижу только 2 года, до этого работал эникейщиком). Причём я не пью и не курю.. За 2 года сидения за компом также начала искривляться спина.

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

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

    Хотя есть люди, которые также лет 5 едят фастфуд, пьют пиво, курят и как были в форме так и остались, причём это не спортсмены. От обмена веществ очень много зависит ещё, я вот к чему.
    Ответ написан
    Комментировать
  • Какой основной стек технологий на front-end SPA ваша команда использовала за последний год работы на дядю (офис)?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    та что в гугле, не лишена маркетинговых трюков, да и свежесть не та.


    ashleynolan.co.uk/blog/frontend-tooling-survey-201...

    Собственно моя команда использует Angular уже где-то два с половиной года, и в принципе мы довольны. Особенно радует Angular2, который судя по тому что можно видеть, уже не особо страдает болячками 1.x версии. Не вижу смысла переходить на ReactJS, хотя он в списке потыкать (уже год). Основная боль - привить разработчику компонентный подход в Angular и с таким раскладом жить становится не так уж плохо. Особенно с ES6/7 в варианте babel. На Ember смотрел но опять же не вижу смысла. Кроме ember-data там для меня нет ничего особо интересного.

    Для сборки ранее использовали просто gulp и кучу тасков, сейчас это scss/less в зависимости от проекта и webpack в качестве бандлера. Я все надеюсь перевести все на jspm + system.js но увы пока ранова-то.

    Для тестов пока используется mocha, потихоньку хочется перейти на cucumber.js (на бэкэнде используем Behat, так что подружить их вместе и гонять одни и те же фичаспеки кажется логичным).
    Ответ написан
    8 комментариев
  • Из чего состоит окружение продвинутого php разработчика?

    nonlux
    @nonlux
    Поправил ответ, так будет логичнее.
    Ниже приведены инструменты, которые использую лично я и причины почему.

    1. docker-окружение
    (в 90% случаев для веб-разработки достаточно php -S 0.0.0.0:8000)
    виртуальные машину становятся нужны:
    - когда надоест переустанавливать хост-систему из-за обилия хлама
    - когда работаешь с несколькими проектами имеющие специфические (разные) настройки окружения(php, web-сервер, база)
    - когда надоест решать проблемы в команде из-за того что по разному настроено окружение

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

    3. composer - пакетный менеджер для php
    Нужно, когда лениво помнить все ссылки на все php библиотеки, самому качать их, подключать в автозагрузку

    4. behat + phpspec
    Тесты нужны:
    - когда хочется почувствовать себя безопасности и для сладко спать ночь, забыв о кошмарах о сломанном коде
    - когда в production все снова сломалось
    - когда ты написал одну новую фичу, а сломал три

    5. zsh
    Хорошей консолью приятно пользоваться, работа идет быстрее.
    Консоль есть жизнь, жизнь есть shell.

    6. tmux
    Мало одно окошка в консоли, тогда tmux идет к вам.
    В качестве бонуса получите возможность парного программирования совершенно бесплатно

    7. tmuxinator
    Надоело каждый раз открывать кучу окон для tmux, попробуйте его )
    8. vim
    - Потянуло на что-нибудь необычное?
    - Хочется эффективнее писать код ?
    Ну что открыли vim? В первый раз? Поздравляю закрыть вы его не сможете )
    Вызывает зависимость при частом потреблении


    9. continuous integration сервер
    Вообще ci сервер это одушевленная машина. Это твой тамагочи, ты кормишь его хорошим кодом, он радуется и ты видишь приятный зеленый огонек. Если ты дал с код от скажет что не вкусно. Ну а если ты ему, что гнилое он будет долго на тебя орать плохими словами. Со временем он растет и учится делать более серьезные вещи, и начнет помогать тебе:
    Его скилы:
    - он может сам выполнить 10 минутные тесты
    - подготовить и опубликовать проект
    - рассказать о твоем коде, даже то что ты не знаешь
    Он легко обучается и ты легко сможешь научить его удивительным вещам.

    10. куча линтеров на pre commit hook
    Чтобы ci не кормить плохими продуктами, хорошо бы проверять что ты сделал до отправки на сервер. Что бы не забыть это сделать git сам работу.

    11. gulp
    gulp - это еще один твой помощник.
    как если использовать, как watcher файлов + livepreview, можно забыть о F5 в браузере

    12. bower
    Тоже что и composer но для управления ассетами. Это я о всяких jQuery и Bootstrap

    666. Линукс
    Даже если не хочется ставить как хост-систему, его все равно надо знать. Ваш код будет работать на нем )
    Ответ написан
    16 комментариев
  • Из чего состоит окружение продвинутого php разработчика?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Docker или Vagrant + Ansible/Puppet для окружения.
    Ответ написан
    Комментировать
  • Как сделать хороший интернет магазин....не можем уже 2 года сделать?

    Punkie
    @Punkie
    Вариант по-серьезнее (подороже):
    Найдите нормальную студию. Разьясните им ситуацию с "обманом" в виде невысланных PSD (скорее всего это просто не было учтено в договоре). Внимательно рассмотрите и обсудите со студией договор на предоставление услуг. Особенно уделите внимание передаваемым материалам. Параллельно можете заказать консультацию юриста и показать договор ему, дабы он выявил "слабые места". Так же вам нужно четко определить контактное лицо вашей фирмы, которое будет вести переговоры и принимать работу. Потому что чем больше промежуточных "ячеек" в этом процессе - тем дольше и сложнее будет проект. В студиях на любой проект для этих целей назначается арт-директор (руководитель проекта), с вашей стороны тоже должен быть такой человек.

    Вариант попроще, подешевле, но менее безопасный:
    Открываете фриланс-биржу. Если деньги есть - идите на upwork.com или freelance.com с пометкой к заданию "ищем русскоговорящего исполнителя". На этих сайтах строже правила и больший шанс получить высоквалифицированного спеца. Обязательно смотрите рейтинги, отзывы и историю проектов.
    Если денег немного - берите русский фриланс, но на нём "входной порог" пониже и качество похуже. Плюс кидал побольше.
    Так же в этом варианте рекомендую поискать нормального спеца, который бы помог вам вести весь процесс переговоров. Спец нужен с пониманием используемых в интернет-магазинах технологий и так далее. Такой человек оградит вас от ситуации, когда вас будет покрывать холодным потом и ужасом от непонимания такой лабуды, типа "нам нужно провести рефакторинг кода скриптов во фронтэнде, поэтому мы сдадим проект на 3 недели позже".
    Ответ написан
    Комментировать
  • Как сделать хороший интернет магазин....не можем уже 2 года сделать?

    Вообще я бы послушал и другую сторону. Потому что с дизайном траблы и время много обычно уходит когда заказчик начинает: поправьте тут уголок а тут хочу рамку потолще.
    Обычно если заказ срочный я заказчику сразу говорю: либо дизайн будет на моё усмотрение, либо вот вам 3 шаблона - выбирайте, менять потом нельзя будет.
    Зачем вам форум на сайте интернет-магазина? Может у вас там мега-ТЗ на 200 пунктов и вы хотите много за 3 копейки.
    Директор ваш утверждает сам всё? Если да, то фрилансеры чувствуют что вы промежуточное звено, ничего не решаете и валят от вас, фрилансеры любят работать с конечным заказчиком.
    Ответ написан
    Комментировать
  • Что надо знать хорошему php разработчику?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    но не могли бы вы дать список

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

    В целом же знание алгоритмов на начальном этапе вам не понадобится, вы просто должны понимать как строить алгоритмы. Я вот Кормена так и не дочитал... Тут суть в том что на PHP редко пишут что-то, где важна скорость вставки или поиска, обычно все сложное делается на уровне базы данных. Потому PHP разработчику остается только сформировать запрос в базу и получить ответ. Больше работы именно по архитектуре самого приложения.

    затем начну изучать базы данных и буду понимать что такое CGI,

    CGI не трогайте, это весьма старая штука. Просто разберитесь с SAPI (Server API) и примерным флоу что происходит между приходом HTTP запроса на сервер и вызовом PHP с уже заполненными суперглобальными массивами. Ну и да, с самим HTTP тоже разберитесь сначала, что бы понимать что такое куки и как они передаются с клиента на сервер и обратно, что такое сессии, как получить тело запроса и т.д.

    Так же, так как речь идет о PHP, вам так или иначе придется изучать ООП. На процедурном пыхе далеко не уедешь.

    p.s. Еще рекомендую почитать чего по управлению проектами, по методологиям разработки. Ознакомьтесь с XP (причем лучше читать на английском), почитайте про технический долг и т.д.
    Ответ написан
    9 комментариев
  • Поздно ли изучать DirectX 9?

    @apreobr
    В принципе - нет, фундаментальные знания не вредят, если у Вас достаточно времени. Но лучше совместить приятное с полезным, начав сразу с DX11.
    Ответ написан
    Комментировать
  • Возможно ли SSH подключение к устройству не с белым IP?

    @azazelpw
    Linux SA
    Поднять OpenVPN?
    с серого ip выполняем подключение к белому ip
    Вся работа будет в туннеле, авторизация по сертификату.
    Ответ написан
    Комментировать
  • На сколько большая область применения языка python?

    @lyeskin
    Область применения-то достаточно широкая и удобная, но в каждой из сфер специализированный инструмент справляется лучше.
    Ответ написан
    Комментировать
  • Аналог Хэдхантера (hh.ru) в США и Канаде (или глобальный)?

    opium
    @opium
    Просто люблю качественно работать
    старый добрый linkedin
    Ответ написан
    Комментировать
  • JavaScript code style. Стоит ли использовать объявления переменных внутри цикла?

    sarkis-tlt
    @sarkis-tlt
    Full Stack Web Developer (ReactJS/MeteorJS/NodeJS)
    в es6 есть крутая штука let, вот ее стоит использовать для обьявления переменных в цикле, это лучше чем var и не нужно заморачиваться с замыканием.

    если же говорить про es5 то да, для цикла переменную лучше обьявлять внутри цикла, а не до или вне функции. Ну и к тому же это наиболее распростроненный и удобный стиль.
    Ответ написан
    Комментировать
  • Как работать на Upwork?

    mbelskiy
    @mbelskiy
    Software Developer
    Нет, не выключаю. Всё время потраченное на РЕШЕНИЕ задачи должно оплачиваться.
    И пункт №6 не исключение.

    Конечно, если у вас недостаточно знаний или опыта на уровне Junior-a то не стоит трекать время затраченное на самообучение.
    Ответ написан
    1 комментарий
  • Почему Angular плохой?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Дураков на свете много и если каждого слушать, можно стать таким же.
    Ответ написан
    Комментировать
  • Почему Angular плохой?

    @VanKrock
    Angular всего лишь инструмент, если вы умеете им пользоваться и он решает ваши задачи, используйте его, если нет используйте другой инструмент. На Angular достаточно просто решать большой пул задач, если вы будете постоянно только сравнивать инструменты и искать который лучше, то в итоге вместо проекта вы все еще будете искать инструмент, который лучше.
    Ответ написан
    4 комментария
  • Возможно ли на Андроиде как на операционной системе заниматься веб-разработкой?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Понятно что полноценно пока что нет.

    почему? Linux он и в африке linux, а с учетом того что есть Android x86...

    еще бы git и полный root доступ.

    все есть, если захотеть.

    чего не хватает андроиду как операционке что бы на нем возможно было код писать?

    Все там есть, можно хоть на десктопы поставить и докером разруливать уже какие-то мелочи.
    Ответ написан
    2 комментария