1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Посоветуйте как выучить PHP новичку в программировании

Тема в разделе "Программирование", создана пользователем ahdpe, 05.05.20.

  1. sema

    sema Активный участник

    13.694
    1.133
    Да ладно, какой из меня архитектор, максимум sunтехник )
     
  2. 027

    027 Активный участник

    3.898
    677
    Вот поэтому и ненавижу — вынужден сечас на нем писать (опять :madgo:). Начальство попросило сваять онлайн-калькулятор.
    WebAssembly — Википедия
    Дело на мой взгляд перспективное, хотя потенциально представляет новую поверхность для атак. И сырое пока что.
     
  3. 027

    027 Активный участник

    3.898
    677
    Кстати о PHP.

    Дописываю этот долбаный онлайн-калькулятор для дебилов. С валидацией ввода все хорошо, хвала jquery — жабоскрип с человеческим лицом. Все красиво переливается красненьким, зелененьким, сереньким. Данные четко синхронизируются в дублирующихся инпутах (так надо). Валидированные наборы значений инпутов успешно складываются в две правильные кучки. Прямой ввод, копипаста, клавой, мышью, тапом на мобилке — кривые данные не введешь. Ништяк.

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

    Это ж какой лютый треш и содомия с массивами в жаваскрипте!

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

    Кое-как, через жёппу, через принудительное приведение типов, в разных случаях разными методами (ага, просто массив, это вам не произвольно индексированный массив, который вовсе не нормальный индексированный массив, а вовсе даже ассоциативный массив, в котором строковые ключи только прикидываются числовыми... а массив с уникальными значениями — это вообще отдельный тип Set(), у которого все на так в потрохах, как у обычного массива, и совсем не так, как у простого объекта, состоящего только из полей, по сути, простого массива, но он не просто, он обмазан унаследованными функциями от прототипа, причем не такими, как обмазан просто массив, который, по сути, объект, но не типа Object, а типа Array...)

    НЕНАВИСТЬ!!!!11111
     
    Последнее редактирование: 30.06.20
  4. Иной гость

    Иной гость Активный участник

    20.757
    2.582
    это вам, батенька, прямиком в питон, в numpy :)
     
    sema нравится это.
  5. 027

    027 Активный участник

    3.898
    677
    Не, меня управление отступами вымораживает. :)
    Вкусовщина, понятно...
    Да и не надо оно мне (задачи, в которых явно лидирует питон).

    ***
    Тот большой абзац можно сформулировать короче:
    «Когда в языке наворачивается куча неявной магии, аффтара следует расстрелять из реактивного говномета.»

    Это ж надо было уродить такое непотребство, когда запросто можно зафигачить true == false, а вот Nan != NaN, никогда!
    (Впрочем, внутри Set() NaN таки === NaN. Поубивал бы.)
     
    Последнее редактирование: 30.06.20
    ski нравится это.
  6. hasslich

    hasslich Активный участник

    19.280
    969
    Всегда удивляли люди, которые занимаются сразу всем и везде. Эдакий специалист широкого профиля и низкого заработка.
     
  7. E13

    E13 Модератор

    7.052
    267
    Сеты и нативно поддерживаются, без нампи.

    С нампи кажется просто более расширенный функционал, но я его забыть уже напрочь :)

    А в сторону фреймворков вроде Vue не пробовали смотреть? Я имел неосторожность применить jQ на сложном интерфейсе (разработка диалоговой структуры чат-бота), и огрёб таких проблем, что пришлось переписывать всё заново.

    Тут разные методы вроде Array.filter хорошо идут - часто вопрос одной строкой решается. А для типов данных вроде TypeScript норм, но его не копал пока. Хотя придётся, если дальше фронтенд пилить буду.
     
  8. grunt

    grunt Участник

    351
    59
  9. 027

    027 Активный участник

    3.898
    677
    На хабре была переводная статья по современную экосистему жабаскрипа. Адъ и содомия.

    Так-то да, и примеры на MDN имеются, но ити его мать, как же все оно пер ректум!
    Сама парадигма, когда данные таскают за собой предопределенную кучу встроенных методов для работы с ними... это... матерных слов не хватает.
    А внешних функций — хрен. И если чуть нестандартно, начинается выплясывание с бубном.
    А чтобы исправить массовое непотребство, понаписано куча языков с транспайлерами, причем, кто в лес, кто по дрова, а куды бедному крестьянину податься, лучше не задумываться. Ибо снесет крышу.

    Изрядно подолбавшись с гребаной неявной магией, таки закончил с этим проектом. Надеюсь, ОЧЕНЬ надеюсь! — с жабаскриптом в ближайшем будущем дела не иметь, предпочтительно до самой смерти.

    Давно на Вьюи посматриваю, нравится, и документация на русском от разработчиков. Но освоением нового надо заниматься в спокойной обстановке, а не в угорелом режиме сделай-срочно-вчера-пожалуйста!!!111111

    В моем случае от jQ проблем не вылезало... ну, почти. Всё решалось курением мануала, подзабылось многое с последнего раза — то ли год, то ли два назад.
    (рекомендую, кстати, jquery.page2page.ru — дело даже не в русском языке, организовано куда удобнее, чем оф.дока).

    Интерфейс не особо сложный, но все же понадобилось синхронизировать данные и подсветку ошибок на лету в нескольких родственных формах, спрятанных в переключаемых вкладках bootstrap. Вот с обработкой ошибок потыкался изрядно. Кроме подсветки и синхронизации value в инпутах надо было еще пересчитывать общие данные на основе заполнения форм, и чтоб все синхронно посвистывало и попукивало при переключении вкладок и нажатии кнопок «Рассчитать». Тут чисто ванила, от библиотеки jQ только поиск элементов и манипуляции с атрибутами.

    Слава Б-гу, вовремя вспомнил про атрибуты data-* в html5, сильно облегчило говнокодинг.
     
    Последнее редактирование: 03.07.20
  10. sema

    sema Активный участник

    13.694
    1.133
    upload_2020-7-4_12-35-57.png
     
  11. 027

    027 Активный участник

    3.898
    677
    Бред собачий.
     
  12. The Chief

    The Chief Активный участник

    8.553
    194
    @sema, бред. Кстати, 15 лет тому обратно я на PHP очень быстро (за 3-4 дня), не зная до того его вовсе, накидал вполне работоспособный (хотя и очень примитивный) фронтэнд для b2b сайта, интегрированный с 1С (эту часть писал техдир). Нормальный язык вполне.
     
  13. 027

    027 Активный участник

    3.898
    677
    Это вы как-то очень сильно в жиквери поверили, чтобы на такое простой либой замахнуться! :)
    Кстати вот потыкал.
    Подкупила методика однофайловых компонентов — по описанию все так здорово, просто песня.
    В реальности компилятор на простую, казалось бы, свистоперделку — слайдер на вьюи-бутстрапе — вывалил прожорливый бандл на пару сотен килобайт (+ около двух мегабайт map.js).
    То ли задачка для конкретного фреймворка неудачная, то ли лыжи на асфальте... Но я уже столько ублюдочного тормозящего дерьма повидал, что как-то в авторы еще одной кучки кала не стремлюсь.

    И как всегда, подходящий плагин нашелся сильно после завершения траходрома. Случайно наткнулся на реактивный костыль для жКвери. Глядишь, пару сотен нервных клеток выжило бы.
     
  14. E13

    E13 Модератор

    7.052
    267
    Не знаю, за что не любят пхп. Обычный С-образный язык, в последнее время с разными полезными свистелками. Разве что, очень не хватает ван-лайнеров: их по чуть сделали, но нужно больше. Ван-лайнеры - благо!

    Скорее по дурости и боязни на чем-то новом писать. Потерял несколько месяцев из-за этого на переделках :)

    Тут пожалуй без вариантов. Вряд ли какой-нибудь реакт даст более компактный код. А если штуки вроде электрона смотреть - там вообще счастье: меньше нескольких десятков мегабайт никак не получится. Даже если приложуха пишет "хелло ворлд" просто.
     
  15. 027

    027 Активный участник

    3.898
    677
    Так электрон и есть браузер, задействованный для отрисовки скриптятины на десктопе. Утилизирование толп жабаскриптеров, влюбленных в это одоробло.
    Кстати, есть очень компактная штука «вроде электрона», тикль называется — Tcl/Tk. На нем, помнится, кроссплатформенный клиент мессенджеров был написан, забыл, как называется.