Ответы пользователя по тегу Программирование
  • Это говнокод? Если да, то в чем именно я провинился?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да, это говнокод. А чем провинились я устану перечислять

    - $GLOBALS и использоваие суперглобальных массивов
    - использование собачки для подавления ошибок
    - for($count=0;isset($block[$count]);$count++) и стремные бесконечные циклы вместо foreach
    - переменные вида $ppfile и $pppfile, ваш код очень "удобно" читать.
    - смешивание php и html и css
    - по сути код состоит преимущественно из канкатенации строк... это грустно
    - использование закрывающего тега ?>
    Ответ написан
    8 комментариев
  • Как повысить скиллы в программировании?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну стало быть надо писать больше кода, решать больше задач и т.д. Попишите стандартные алгоритмы, сортировки и т.д.
    Ответ написан
  • На чем написать сервис наподобии fl.ru?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Скажу сразу я не программер, мне нужно знать на каком языке программирования лучше написать такой проект.


    Найдите разработчика, а он вам уже скажет на каком он будет это писать.

    Можно написать обсалютно любой функционал

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

    Скорость загрузки сайта

    Как бы нибыл язык хорош и быстр все может загубить кривая архитектура и плохой выбор СУБД или архитектуры базы. В целом на вашем месте я бы этот параметр опустил бы в самый конец списка. Можно предьявить к разработчику нефункциональное требование по выдерживаемой нагрузке и времени генерации страниц. А далее пойдут кэширования всякие и т.д. Посмотрите на GitHub, он написан на крайне медленном RoR но в целом довольно шустро работает.

    Безопасность от взломов

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

    Распространенность

    На PHP написано ~80% всего WEB, но если брать качественные проекты то распределение по технологиям я думаю будет приблизительно одинаковое. Возможно Java тут будет выигрывать но и дороже выйдет существенно.

    Словом, все решает вменяемый разработчик. И да, это дорого и не быстро. Можно взять PHP, Ruby или еще чего и быстренько сделать MVP, пускай и не выдерживающий больших нагрузок и не на 100% то что вам нужно, но можно будет запустить проект раньше. В любом случае расчитывать на большой поток пользователей при старте проекта - тут либо надо нехило вкинуть денег в маркетинг или привести трафик откуда-то еще, либо не знаю.
    Ответ написан
    4 комментария
  • Как рассчитывается битрейт в mp3?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Все просто, у вас Layer 3 а не 2, так что 256 кбит

    [0-10]	1111 1111 111
    [11-12]	11 - MPEG 1
    [13-14]	01 - Layer 3
    [15]		1
    [16-19]  	1101 - 256 kbit/s
    [20-21]	00 - 44100Hz
    [22]		1
    [23]		0
    [24-25]	00 - stereo
    [26-27]	00
    [28]		0
    [29]		1
    [30-31]	00
    Ответ написан
    5 комментариев
  • PHP socket_bind() - Address already in use?

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

    Если вы хотите явно указать, что сразу после закрытия сокета его можно сразу открыть, нужно указывать опцию SO_REUSEADDR
    Ответ написан
    1 комментарий
  • Где на практике применяется дерево Фенвика?

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

    Можете попробовать сами придумать задачу, но для этого надо понимать в чем минусы и плюсы алгоритма + понимать альтернативы. Можно почитать тут: habrahabr.ru/post/112828
    Ответ написан
    Комментировать
  • Существуют ли НЕ видеоуроки по различным ЯП?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Есть такие штуки, книги называются, раньше говорят было модно.
    Ответ написан
    9 комментариев
  • 3D или программирование?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Подкиньте монетку. С точки зрения личной ответственности, послушаете вы монетку или отвечающих здесь - одинаково.

    Я вот когда-то думал что 3D это мое а программирование - так, хобби... и вот уже лет 6 вообще не открывал макс...

    По поводу профильного образования - ну это вы зря. Хотя бы пару курсов не повредят. Просто стоит выбрать где учиться.
    Ответ написан
    1 комментарий
  • Перебор массива циклом или сверка значений проверкой?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    С точки зрения производительности - без разницы, так как второй вариант эквивалентен циклу. Но сами понимаете что первый вариант лучше. Если вас парит производительность - то бинарный поиск. Но ни в коем случае не тот ад что вы привели. Быстрее всего поиск производить по хэш-мэпе, так как там сложность выборки всегда O(1).

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

    Пример. Возьмем массив на 1 000 000 чисел, и попробуем сделать его копию, с увеличенным в два раза значением:
    var data = range(1000000);
    var result = range(1000000);
    // обычный вариант
    for(var i = 0;i<1000000;i++) {
        result[i] = data[i] * 2;
    }
    
    // развертка цикла
    for(var i = 0;i<1000000;i+=4) {
        result[i] = data[i] * 2;
        result[i+1] = data[i+1] * 2;
        result[i+2] = data[i+2] * 2;
        result[i+3] = data[i+3] * 2;
    }


    jsperf.com/loop-unroll-simple

    На этом примере уже видно что развертка работает, хоть и прирост производительности не такой большой. Оптимизирующий компилятор JS-а и там умеет это делать.

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Доктор, что со мной?

    Волчанка

    или неправильно рассматриваю обучение в целом

    из того что вы расписали у вас в целом и нет этого процесса обучения. Теория это хорошо, но без практики вы не сможете усваивать полученные знания. Так что больше практики.
    Ответ написан
    4 комментария
  • Вопрос тем, кто недавно читал книгу Боба Мартина - "методика гибкой разработки на c#".?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Не читал, но подозреваю что логика сохранения вынесена как раз таки в метод Execute (то есть она не реализована, и наверное должна быть реализована в рамках PayrollDatabase), то есть вне Change. Я бы туда Unit-of-work еще впихнул, тогда вообще славно.
    Ответ написан
    Комментировать
  • Как сравнивать составить битовую маску с большим количеством условий?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вообще мне кажется что битовые маски не самый эффективный способ организовать фасеточный поиск.

    Можно сделать несколько битовых маск, типа каждый бит значения - флаг наличия в конкретной стране (из этого следует ограничение, что мы можем использовать только 32/64 страны на значение в зависимости от платформы для long unsigned). Ну и дальше по аналогии.
    Ответ написан
  • Как пояснить клиенту что такое технический долг и рефакторинг?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Клиент понимает только цифры, ему плевать на качество кода ровно до той поры, пока поддержка кода не станет ему в копеечку лишнюю. Приведите ему реальные доводы ЗА рефакторинг выражающиеся профитом в денежном эквиваленте и вуаля. Ну а если этих доводов нет - только личное мироощущение, то нужен ли рефакторинг?

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да везде.
    Ответ написан
    Комментировать
  • Какая лучшая книга/видео/звуковая дорожка/сайт/курсы/etc. по основам программирования?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вам надо повторять/изучать дискретную математику судя по всему.

    что до
    Когда лучше применять do while.

    ну, если вы знаете разницу между do while и while то думаю ответ вам понятен.

    Когда и что лучше применять return, break, continue, if ele else if , select и тому подобное.

    опять же, вы должны понимать алгоритмы ветвления. И да, разве select это не из другой оперы? Вы про select который для сокетов/стримов?

    Де лучше выделять память в динамике или статике.

    Опять же из знания различий рождается истина

    Какие переменные использовать.

    А какие есть?

    Максимальная оптимизация и тому подобное.

    преждевременная оптимизация зло. Алгоритмизация - другое дело.

    Если случаи в которых возможно применять goto.

    Описание конечных автоматов. Опять же дискретка.

    Словом, дискретка и алгоритмизация. Вопросы на эту тему тут проскакивали и не раз, поищите.
    Ответ написан
    1 комментарий
  • Как написать хороший роутер или где взять готовый?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Или у этого роутера есть шанс на жизнь?

    Есть конечно, но умрет быстро. Ну или пользователь вашего раутера (или тот кому достанется на поддержку) будет жадать его смерти.

    Как нормально написать все это дело ?

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

    Что посоветуете ?

    https://packagist.org/search/?q=router и в частности https://github.com/nikic/FastRoute
    ну и чтиво на ночь: nikic.github.io/2014/02/18/Fast-request-routing-us...
    Ответ написан
  • Какие ресурсы "экономить" при алгоритмизации?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    и увеличить при этом количество переменных

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

    Да и вообще, все очень зависит от языка программирования и компилятора.

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Читаем про Scrum/Kanban и XP (гуглить в контексте agile). Отдельно стоит почитать про BDD. Там вам будет и как спецификацию к проекту вести и делать, и как планировать...

    По поводу самой архитектуры - есть кучи штук, вроде Service-oriented architecture, гексагональная архитектура (которая хорошо сочетается с SOA), можно про DDD почитать... Словом можно почитать Мартина Фаулера, Эрика Эванса и других клевых чуваков.

    В любом случае... первый блин комом если не будет рядом кого-то для кого это не первый блин. Ну и опять же у всех понятие "большой проект" разнится.
    Ответ написан
    1 комментарий
  • Нормально ли такое тестовое задание?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Обычное тестовое задание, на 8 часов для джуниора. Делать или нет - решайте сами. Можете сделать хотя бы для того что бы чуть больше прошариться и набраться сеансу.
    Ответ написан
  • Есть ли у вас любимый код?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Отдельные компоненты Symfony, в частности формы. Twig внутри красив (настолько насколько это возможно для движка шаблонов)... Просто полазьте по популярным репозиториям - в половине случаев код там симпатичный.
    Ответ написан
    Комментировать