Задать вопрос
Ответы пользователя по тегу Программирование
  • Стоит ли мешать Golang с Js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    а зачем? uglify + gzip + настроенное кеширование и оверхэд для пользователя от использования трансляторов/полифилов будет не так заметен (посмотрите статистику, сколько у вас пользователей этих "необычных" браузеров?).

    А вот поддерживать все это выйдет на порядки дороже.

    я вообще когда то думал сделать аналог node.js без их чокнутой виртуальной машины

    и что? Дошли до мысли "это невозможно"? Без полной информации о типах (она может быть получена только в рантайме) вам так или иначе придется писать свою чекнутую виртуальную машину.
    Ответ написан
    4 комментария
  • Как работать с большими файлами в PHP?

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


    читать про fopen, fwrite

    Убрать первый символ, не загружая весь файл в память.


    открываем файл (стрим), юзаем fseek, отправляем стрим на чтение на запись. То есть нам всеравно придется перезаписать весь файл, но мы это можем сделать через потоки и тогда не надо загружать файл целиком.

    Добавить 1 символ в начало файла, не загружая весь файл в память.

    Так же как и в предыдущем пункте. Только тут вместо fseek мы сначала добавим в новый поток один символ и потом добавим все из другого потока.

    Короче почитайте чего про streams в php.
    Ответ написан
  • 13" ноутбук Full HD реально использовать при 100% масштабировании для кодинга?

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

    Для организации рабочего пространства лучше воспользоваться вируальными рабочими столами (благо в win10 даже оно из коробки есть).
    Ответ написан
    7 комментариев
  • Путь от junior к web backend developer?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) учим C# + алгоритмизацию (вы как минимум должны знать что происходит при вставке в хэш-таблицу и хотя бы примерно понимать что такое куча, на бэкэнде структуры данных знать очень полезно)
    2) учим ООП (читаем паралельно Фаулеров, Кентов Бэков, Бобов Мартинов)
    3) постепенно берем ASP MVC и вперед к свершениям.
    4) асинхронное/паралельное программирование

    Каждый пункт сдобрим практикой
    Ответ написан
    Комментировать
  • Функция в математике?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    y = x - вот вам функция зависящая от x

    y = t - вот вам функция зависящая от t (времени)

    y = sin(t) - вот вам синусоидальная функция зависащая от времени... ну вы поняли

    Суть в том что результат работы функции зависит от аргументов.
    Ответ написан
    3 комментария
  • Писать ли уроки по программированию?

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


    Все нормальные книги по алгоритмизации для этих целей вводят понятие "всевдоязык". И да, это практикуют уже не один десяток лет. Но кто сейчас читает эти книги?

    но не входящие в обычный цикл темы

    Что значит "не входящие"? В ВУЗах это все как бы дают еще на первых курсах. Опять же на усвоение этого материала нужно порядком времени.

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

    Потому то когда вы читаете учебник или книгу полезно делать эти самые конспекты, строить майд мэпы и т.д. Помимо мыслей там обычно раскрываются предпосылки и т.д. Изучение по "выжимкам" станет заучиванием без понимания сути вещей.

    Особенно это касается первых 100 страниц, которые можно вообще ужать в десять.

    Книги бывают разные. Иногда выкинув эти первые 100 страниц дальше читать в принципе бесполезно так как вы не понимаете предпосылок.

    он дает отсылку, где и когда это будет изучено

    Так делают все адекватные авторы

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

    Картинки это хорошо конечно, но опять же чем ваш подход отличается от остальных? У нормальных авторов и так есть понятные схемки, картинки, метафоры и прочие вещи упрощающие понимание.

    Поскольку данные уроки действительно долго и сложно делать, купили бы вы их?

    Все что вы описали я изучил в ВУЗе и из книг. Более того любой другой так же может это сделать.
    Ответ написан
    3 комментария
  • Как запретить UglifyJS минимизировать часть строки?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Комментировать
  • Как вы "держите" в голове функции, переменные и их значения при написании программы, или разборе чужого кода?

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

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

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Не могу решится что выбрать symfony или laravel.

    Для CRUD-а, если на сервере не будет ровным счетом никакой бизнес логики, лучше возьмите laravel, быстрее сделаете.

    от фрейма требуется только работа с базой и частичная валидация, кэширование, работа сессиями.

    А еще предоставление нормальной платформы для организации HTTP API но это мелочи да.

    Думаю что больше редис.

    redis универсальнее, но сложнее. В принципе тупо как key-value разница не существенна.

    Если есть возможность работать с вебсокетом, то будет хорошо, а если нет, то ajax.

    ajax (или XmlHttpRequest) это просто возможность делать HTTP запросы из браузера. То есть это поддерживают по дефолту все существующие фреймворки ориентированные на HTTP.

    Что до websockets - тут вам придется всеравно делать отдельное приложение, можно на пыхе но дешевле и проще взять node.js + socket-io. Причем не обязательно при этом все писать на node.js. Ваша апишка может быть реализована на PHP, и через очередь сообщений (redis умеет pub/sub и mq) просить другое приложение (простенькое на node.js + socket.io) отправить пользователям сообщения.

    Для авторизации в этом случае рекомендую JWT, так как тогда не нужно будет node.js-у стучаться в php приложение для подтверждения авторизации. Достаточно проверить сигнаруру токена и достать данных из оного. Опять же куча готовых решений как для symfony, так и для laravel и для socket-io.

    Ну и да, если у вас реально сервер нужен только в качестве клиента для базы данных + валидация - рассмотрите вариант использования инструментов типа loopback.io и прочего.
    Ответ написан
    6 комментариев
  • С чего начать алгоритмическую торговлю?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) изучите предметную область
    2) изучайте алгоритмы, системы реального времени и т.д.
    Ответ написан
    Комментировать
  • Что делает программиста программистом?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) это кодер
    2) да, но еще немаловажно умение их строить
    3) код-манки
    4) код-манки
    5) хипстер
    6) бизнес-аналитик, что в принципе норм. Программист должен в первую очередь решать задачи бизнеса а не код писать (это метод решения проблем), а для этого надо какое-никакое о погружение в предметную область
    7) это справедливо для всех специальностей.

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

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    https://github.com/nicksnyder/go-i18n

    и не надо ничего выдумывать. И ради бога, называйте все осмысленно, не in1 а welcome и не in2 а exit
    Ответ написан
    1 комментарий
  • Можно ли считать это "говнокодом"?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) дублирование
    2) разделить функцию на функции поменьше, что бы убрать вложенность ифов
    3) пусть функция возвращает строки, и какая-то другая уже выводит это в stdout, что бы у вас это происходило все в одно месте.
    Ответ написан
    8 комментариев
  • C# заменит ли Java?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    единственная причина малой распространенности C# (относительно) является завязка на windows. Пока .NET не станет официально кросплатформенной платформой Java чувакам нечего бояться. Да и после я думаю доля этих языков на рынке будет примерно одинаковой, C# просто может чуть потеснить джаву, но вытеснить полностью не сможет за счет огромного количества качественных решений.
    Ответ написан
    Комментировать
  • Будет ли польза в такой затеи?

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

    А что-то чего не хватает - да, можно запилить как отдельну библиотеку. Например расстояние левенштейна между двумя строками.
    Ответ написан
    Комментировать
  • Как отследить изменение файла?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    inotify, есть для php и для js. Проще будет реализовать на js (socket-io, демон)
    Ответ написан
    Комментировать
  • Ребенок-Кодер или программист?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Мечтает же писать расширения в майнкрафт.)

    И это нормально для 8-ми лет, я помниться в программирование пришел потому что мне нравилось делать прикольные штуки в GTA (играть надоело в 13 лет где-то, было больше интересно что-то поменять, разобраться, добавить). Причем в WEB занесло как-то случайно и торчу тут уже 8 лет...

    Вопрос мотивации. Предлагайте ему задачки связанные с тем что ему нравится и тогда будет больший стимул разбираться. Тут книжки на алгоритмы могут спугнуть излишней скукой. У меня так в детстве любовь к музыке музыкальная школа отбила (ну в смысле желание развиваться как музыканта, музыку я всеравно люблю).
    Ответ написан
    2 комментария
  • Как узнать что передается именно JSON?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В качестве языка

    в качестве языка вы используете javascript. Feel the difference.

    то Node.js сразу вылетает не выдавая никаких ошибок.

    оно где-то внутри выкидывает исключение когда делает JSON.parse.

    строка именно в JSON формате?

    Заголовок Content-Type, но есть шанс что писать клиент может слабоумный который не будет верно выставлять этот заголовок, так что вам надо всеравно наладить обработку ошибок. Это только в PHP позволительно ничего не делать, и то только если придерживаться классической умирающей модели.
    Ответ написан
    Комментировать
  • Как вы организуете разработку сложного продукта?

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


    Тесты, TDD, рефакторинг, SOLID. И тогда нет боли. Но это увы далеко не на каждом проекте встретишь.

    Потому, как, тебя просят добавить или починить функцию А, ты ее чинишь, но попутно, возможно, ломаешь явно фичу Б и неявно В

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

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


    Баги это хорошо, регрессионные баги это плохо, это показатель того что с нашим кодом что-то не так. Уменьшить количество багов просто - нужно больше тестов с учетом различных инвариантов. Но иногда это избыточно, и проще просто словить и пофиксить баг.

    Так же рекомедную вам ознакомитсья с практиками экстримального программирования, там много внимания удиляется обратной связи от момента когда разработчик что-то сломал до момента обнаружения проблемы (парное программирование, TDD).
    Ответ написан
    3 комментария