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

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

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

  1. 027

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

    9.037
    2.880
    @The Last Winged, вы ответили на мой вопрос. ©
    Сочувствую вашему работодателю. :)

    А кто может разъяснить про загадочное и ужасное глобальное состояние в CodeIgniter, неужели это про глобальные константы? И про «огромное множество сайд-эффектов, но они замаскированы и не так фатальны».
    Я просто в ужасе, как я с этим всем жил?!! Спасите! Помогите!
     
    Последнее редактирование: 03.04.21
  2. The Last Winged

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

    12.552
    375
    Звучит как оскорбление. Потрудитесь объясниться.
     
  3. E13

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

    10.793
    1.680
    Хм, а кинете ссылку на методологию подсчёта?

    Кстати, немного оффтопик, но может подскажете. Ищу и не могу найти материалы по продвинутой работе с БД (mysql, postgres). Оптимизация запросов, архитектурные паттерны для скалабилити и хайлоада, вот такое вот.
     
  4. The Last Winged

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

    12.552
    375
    A class should have only one reason to change.Robert C. Martin

    В Ларавеле модель - это и собственно, сервисный слой, и меппинг структуры, и репозиторий, а валидатор, и ДТО, и ДТО билдер. Шесть штук навскидку.
    Естественно так слегка быстрее что-то писать небольшое, до человекополугода, но поддерживать потом чертовски сложно, медленно и дорого.

    Оффтопик вон парой комментариев выше. Мне понравились материалы Олега Бунина HighLoad Channel, есть еще канал fwdays.
    Что касается скалабилити и прочего - микросервисы, самый популярный инструмент оркестрации - k8s. Различные очереди, шины, сервисы уведомлений. Правильный трейсинг (jaeger) и логирование (ECS). Могу посоветовать сдать экзамен на сертификат CKAD.
    Но от этих вот инструментов есть смысл только в больших компаниях. Изучать их для себя, пожалуй, бессмысленно
     
  5. E13

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

    10.793
    1.680
    Спасибо. У меня тут явный пробел, и вот ищу, как его закрыть

    Кажется, это у меня где-то было уже в рекомендациях. Спасибо.

    Спасибо, поизучаю. Просто не раз и не два уже сталкивался с тормозами на запросах к БД на больших проектах. И вот интересно, как этого можно максимально избежать, не прибегая к кешированию
     
  6. Дмитрий Н

    Дмитрий Н Активный участник

    2.120
    396
    Рекомендую:

    upload_2021-4-3_22-0-26.png

    PS
    Тут не про языки с обложки, на них просто примеры.
     
  7. E13

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

    10.793
    1.680
    Спасибо, почитаю
     
  8. Nikita82

    Nikita82 Новичок

    11
    1
    Может еще вот это понравится - SQL. Сборник рецептов. Энтони Молинаро. Многовато воды, но и много интересной практики.
     
    E13 нравится это.
  9. 027

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

    9.037
    2.880
    Прошу прощения за некропостинг, а тем более за js-оффтопик. Увы, скрипящая жаба идет рука об руку с php и освобождать место одесную не собирается.

    А вот и здрасьте вам! — сказали мне мои коллеги-не-программисты и попросили немножечко переделать, что вылилось в нахрен всё вообще. :)

    Взглянув с тоскою в собственный говнокод, разнес всё вдребезги пополам переписал на вьюи.
    Пришлось, конечно, постучать лбом по граблям — как всегда бывает, когда пробегаешь глазами по доке, откладывая разбор и упражнения на потом (некогда, некогда!) С разбегу налетел на проблемы с реактивностью (не серебряная пуля, не серебряная...), но таки асилил.

    Годно.
     
    ski нравится это.
  10. ksa

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

    4.556
    565
    Сам себя поругал и сам же себя похвалил... :facepalm:
     
    ski нравится это.
  11. E13

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

    10.793
    1.680
    Да, удобная штука. Я сейчас любой мало-мальски сложный интерфейс на ней запускаю. Ну и вот на реакте ещё до кучи начал, теперь что ни проект - то муки выбора :)
     
  12. 027

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

    9.037
    2.880
    дурачок ты, @ksa... Хоть и старый. Всё детский сад свой никак не забудешь.
     
    Последнее редактирование: 11.07.21
    ski нравится это.
  13. 027

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

    9.037
    2.880
    Реакт чем-то от вьюи отличается в выгодную сторону (с т.з. новичка)?

    Вернее, так: с точки зрения человека, который вынужден писать мелкую автоматизацию на джаваскрипте, изучать глубоко который ему ни в дуду не уперлось, ибо другая профессия, и лавры крутого фронтендера ему ни к чему.
    У вьюи хотя бы дока на русском. И юзать ее можно без этих бабелей-шмабелей-вебкомпонентов и прочего безумного угара.
     
    Последнее редактирование: 16.07.21
  14. ksa

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

    4.556
    565
    @027, не писал стихов и не пиши... (с) Александр Иванов
     
  15. 027

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

    9.037
    2.880
    Да что ж тебе неймется, родной! Что так свербит, аж удержаться не можешь? Иной жизни, кроме галеры, представить невмочь?

    А стишок написать тебе могу. Тупой стишок вообще не вопрос, со смыслом — чуть подумать надо. Но это уже за плату.
     
    Последнее редактирование: 16.07.21
  16. E13

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

    10.793
    1.680
    Реакт ближе к нативному JS чем вью. У него там свой тип файлов, но по сути JSX только немного расширяют синтаксис JS, позволяя писать внутри JS HTML-код.

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

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

    Реакт пока очень поверхностно знаю, но напрягов с ним, показалось, меньше чем с ряде случаев с Vue. Можно ли его без Npm/babel юзать - не знаю. Примеры видел, но, кажется, движений там получается сильно больше.

    От npm пожалуй никуда не деться, это часть современного фронтенда. У меня был один проект, который я для простоты (как я думал) собрал без npm/бабел/прочего с использованием вью, просто подключив его как внешний файл. Но в итоге пожалел: вышло в итоге очень плохо с точки зрения дальнейшей поддержки проекта
     
  17. 027

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

    9.037
    2.880
    Лично я толкнулся с тем, что пересчет данных через computed не заработал в базовом экземпляре Vue, хотя по описанию должен. Разбираться не стал, устроил пинок через updated (некогда, некогда... заработал этот чертов калькулятор скидок, и хрен с ним, побочная нагрузка).
    А в компоненте в цикле v-for в комбинации с v-if все обновляется без проблем, как заявлено.

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

    Один раз попробовал, ужаснулся скомпилированному результату, и что-то не хочется такое выкатывать в пользование ни в чем не повинным людям. Нет, ну конечно, разработчику оно удобно, однофайловые компоненты эти... И деплой командами в CLI мне вполне удобен. Но когда это чудище уродило js-бандл на 3 мегабайта, запихнув туда еще и картинки... это уже слишком.
     
    Последнее редактирование: 17.07.21
  18. ksa

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

    4.556
    565
    Используем MobX - довольно проста в понимании. Правда есть некие нюансы при использовании... Но если про них узнать, так и проблем не возникнет.
     
  19. 027

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

    9.037
    2.880
    А можно попроще для чайников? Я никакие ключи в циклически выводимой таблице не меняю. Или это происходит неявно?

    ХТМЛ:
    Код:
        <tr is="row-op" v-for="op in opList" v-bind:key="op.id" v-bind:op="op"></tr>
    Шаблон компонента:
    Код:
        template: `
        <tr v-bind:class="op.color" v-show="vm.availableSpecList.indexOf(op.code) != -1">
          <td class="text-center">{{ op.code }}</td>
          <td>{{ op.name }}</td>
          <td class="text-center">{{ op.level }}</td>
          <td class="text-center">{{ op.form }}</td>
    
          <td class="text-right">
            <span class="text-muted">{{ vm.opList[op.id].percent }}</span>
            <span v-html="vm.opList[op.id].discount"></span>
          </td>
    
          <td class="text-right">
            <span v-bind:class="vm.opList[op.id].mute">{{ op.tariff }}</span>
            {{ vm.opList[op.id].cost }}
          </td>
    
        </tr>
        `
    
     
    Последнее редактирование: 17.07.21
  20. E13

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

    10.793
    1.680
    Да, у меня поначалу тоже всё очень неоднозначно работало. Много неочевидных вещей - с теми же ключами в циклах, без которых криво работало связывание, и так далее

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

    Например, вот такие коллизии возможны:
    Код:
    <tr v-for="(op, ind) in opList" :key="op.text">
        <td><input v-model="opList[ind].text"></td>
    </tr>
    
    Это искусственный пример.

    С MobX не работал пока. Redux в целом как азы освоил довольно прост в использовании
     
    bjois нравится это.
  21. 027

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

    9.037
    2.880
    А, не, я на такое даже и подумать не собираюсь. :)
    Мои примитивные задачки за рамки мануала особо не выпирают.
     
  22. Borhes

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

    3.370
    885
    Так всё же как на самом деле? Чтобы проще порог входа, не потратить время впустую...
    Безымянный.png
    Отсюда
     
  23. E13

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

    10.793
    1.680
    Посмотрел видео. У чела много каши в голове. От реалий разработки до понимания статистики. Такие видео определённо не лучший советчик :)

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

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

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

    Сама идея решать что-то от языка вызывает вопросы. Потому что рулят не языки, а типы задач и используемые экосистемы. И вордпресс, и ларавел, используют один и тот же пых, но опыт разработки дают принципиально разный. С этой точки зрения можно оценивать не "какой язык лучше учить", а "какая сфера/экосистема даст наилучший старт". Возможно, реально лучшим вариантом тут является веб/фронтенд/JS в силу своей наглядности. Потому что с него можно выползти потом много куда.
     
    toks и Borhes нравится это.
  24. Дмитрий Н

    Дмитрий Н Активный участник

    2.120
    396
    Проекты разные бывают, на любом языке. Можно на пыхе лендосы клепать на WP, а можно как у меня сейчас, на симфони в архитектурном стиле DDD на шине сообщений пилить B2B сервис...

    PS
    Табличка выше с оценками, чьё-то субъективное восприятие рынка, полагаться на неё не стоит.
     
  25. Borhes

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

    3.370
    885
    Новичку же надо с чего-то максимально простого начинать. Сначала не думать о количестве вакансий и зарплате? На первые несколько лет удаленка не рассматривается в любом случае. В большинстве случаев мнение такое, что Пайтон попроще усваивается. А потом уж и к более сложному идти.
    Может более правильно для джуна сначала хорошо разобраться в чём-то одном, даже более узкоспециализированном?
     
  26. ahdpe

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

    3.699
    640
    @Borhes, ты как учиться собрался-сам или с помощью проектов типо яндекс практикум?

    да дофига там,еще работу с ним найди джуна
    с питона начинал имярёк онтошка тру погромист будущего,даже книжку купил,по совету первого встречного:d
     
  27. ksa

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

    4.556
    565
    Как по мне, так если человек умеет программировать - какая разница на каком ЯП его использовать.
    Через 3 месяца можно будет его использовать в любом проекте... Через год будет уже умелый спец на любом ЯП.

    А если программировать не умеет... Таким и останется. И нет разницы в названии ЯП.
     
  28. Borhes

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

    3.370
    885
    Попробую как раз яндекс практикум. И плюс есть человек, который поможет вживую.
    Сначала никто не умеет. По-этому, я и думаю - может стоит пойти от более простого к сложному? Чтобы не махнуть на всё рукой в середине обучения от того, что не получается. Лучше уж нормально разобраться в чем-то узкоспециализированном, чем плавать во всём?
     
  29. ksa

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

    4.556
    565
    Так и строится процесс обучения.

    Весь вопрос в том - сколько ты выдержишь? :d
    Я брал на работу (за бесплатно) людей которые "хотели стать программистом"... Объяснял в чем состоит суть работы программистом... Рассказывал про особенность нашей работы... Снабжал их литературой и тестовыми заданиями... Предоставлял рабочее место...
    Рекордсмен "продержался" две недели. :shuffle:
    Основная масса сливалась за пару дней...

    Очередной желающий придет скоро, после защиты диплома...
    Посмотрим как пойдет у него. :confused:
     
    Элиста нравится это.
  30. Дмитрий Н

    Дмитрий Н Активный участник

    2.120
    396
    А я вот призадумался сейчас, а как я на заре своей карьеры себя вёл? И знаете, в середине нулевых небыло никаких курсов, небыло никаких "менторов", небыло такого обилия открытого софта, а наоборот бурно процветал shareware... Интерес шёл изнутри, знания черпал по крупицам от преподов профильных предметов в институте, от таких же заинтересованных одногруппников, что-то было на форумах в интернете, ходил по книжным магазинам, искал и покупал профильные книжки (до сих пор жалею, что крутил в руках UNIX Взаимодействие процессов Стивенса, а сейчас это раритет в бумаге, за то есть Windows API Рихтера, которая дала преимущества в знаниях в институте). Первые деньги за написание софта получал от менее заинтересованных в теме одногруппников за семестровые и курсачи по профильным предметам, вот тогда и понял, что это моё.