Обновить
-1
Дэн@iit

php backed + js frontend

4
Подписчики
Отправить сообщение

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


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

Согласен, последнее время куча статей о том что должен делать %skill level% %platform% разработчик и в них все что угодно, начиная с обучения новичков и заканчивая поклонениями макаронному монстру развертывания k8s и общению с инверторами.
Кроме собственно выполнения прямой работы, т.е. набора решающего проблему работающего кода.


Судя по всему на западе в принципе develop входит в навыки developer by default и рассматривается как должное в следствии чего в текстах статей этот момент не учитывается и при переводах теряеться. Что и вызывает немой вопрос — мол а писать код кто будет?!

Тут скорее не о мягких навыках а скорее их комбинации с техническими.


То есть по факту нужно знать
1) Особенности работы платформы на которой работаешь начиная от мануалов заканчивая пониманием того что проходит "под капотом"
2) Уметь писать код по паттернам и стандартам принятым для этой платформы
3) Уметь правильно предсказать развитие проекта и построить архитектуру проекта наиболее правильным способом
4) Уметь переводить бред заказчика в бизнес-процессы и бизнес-процессы в спецификации на основе которых собственно строить ТЗ + писать код + покрывать его тестами. Мало того еще желательно уметь проделать этот процесс в обратную сторону (реверс-инженерия)
5) При всем этом нужно не быть "токсичным", уметь followup/feedback и минимальные навыки управления хотя-бы собой и обучения других. Уметь координировать работу всех остальных где то добрым словом а где добрым словом и пистоном
6) И на сладкое понимать чем занимается контора и как оптимизировать её работу.


То есть идеальный сферический senior в вакууме это Программист + Архитектор + Проектировщик + Управленец + Специалист в предметной области.


На самом деле достаточно уметь выполнять хотя-бы 1-2 роли отлично, а остальные хоть как-то и уже все будут считать что ты и есть тот сейнер-помидор и вообще...


Но нужно понимать что это только на конкретную компанию/предметную область.


Например Senior JavaEE из банка внезапно может быть middle для галеры для студии с лендостками и wordpress, junior в 1C и полный нуль в gameDev или IOT.


Опыт и наличие мозга правда позволяют довольно быстро освоить другую предметную область.

На этом моменте пустил скупую слезу...

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


А еще зачем пользователю лишние ресурсы когда он работает с вашим сайтом, криптомайнер на js ему!

Такие требования вполне применимы к Senior/TeamLead/TeachLead и да естественно они хорошие разработчики.

Думаю проблема не в том что "сообщество потребителей" делает для уничтожения СПО а в том что оно не делает (Не читает лицензии). И что делает с любым ПО (Требуют гарантии даже если не покупали лицензии и потом жалуются что "x" — censored ).

Бывший сокурсник 1:
Ну, учитывая, что всерьёз за С++ я взялся где-то летом между вторым и третьим курсом…
А мог бы сейчас без всяких экзистенциальных вопросов писать код на php за хорошие деньги и не париться.


Я:
Ну, учитывая, что всерьёз за php я взялся где-то летом между вторым и третьим курсом…
А мог бы сейчас без всяких экзистенциальных вопросов писать код на java за хорошие деньги и не париться.


Знакомый из Java отдела: Ну, учитывая, что всерьёз за java где-то летом между вторым и третьим курсом…
А мог бы сейчас без всяких экзистенциальных вопросов писать код на С# за хорошие деньги и не париться.


Знакомый из одной компании: Ну, учитывая, что всерьёз за C# где-то летом между вторым и третьим курсом…
А мог бы сейчас без всяких экзистенциальных вопросов писать код на python за хорошие деньги и не париться.


Знакомый из отдела Аналитики: Ну, учитывая, что всерьёз за python где-то летом между вторым и третьим курсом…
А мог бы сейчас без всяких экзистенциальных вопросов писать код на haskell за хорошие деньги и не париться.


Бывший сокурсник 2 писал на ActionScript и выпилился ...

Для React аналог Vuex это не разу не Redux а скорее Mobx а точнее MobxStateTree.


example

mobx-state-tree


const Todo = types
    .model({
        text: types.string,
        completed: false,
        id: types.identifierNumber
    })
    .actions(self => ({
        remove() {
            getRoot(self).removeTodo(self)
        },
        edit(text) {
            self.text = text
        },
        complete() {
            self.completed = !self.completed
        }
    }))

Vuex


export default new Vuex.Store({
 state: {
   text: '',
   completed: false,
   id: null,    
 },
 mutations: {
    edit(store,text) {
        store.text = text
    },
    complete(store) {
        store.completed = !store.completed
    }
 },
 actions: {
    remove({dispatch, store}){
        dispatch('todos/remove', store.id, { root: true});
    },
});

По поводу popup или отдельная страница — тут лучше чтобы были оба варианта в зависимости от сценария использования.


Что касается popup и того факта, что его скрипт таскается от страницы к странице — то в этом случае поможет code-splitting и например vue, который может работать и не как spa.


Изначально в статике ссылка на отдельную страницу (для тех у кого стоит NoScript), потом загружается vue и перехватывает событие нажатия и при нажатии на кнопку входа уже отдельно подгружает сам попап. В итоге все рады =)


  • Есть вход для пользователей без js
  • Попап не таскается туда-сюда вместе с его js+css+img
  • loader логина не ест ничего пока не нажали на кнопку входа
  • ??????
  • PROFIT!

Может я немного параноик но я не буду доверять свои пароли всяким менеджерам если такой менеджер не написал я сам и он вертится на моем сервере.


Пока я этого не сделал — использую метод генерации пароля по нескольким ключевым словам и цифрам и держу этот метод в голове.


Что касается форм, если сделать как предлагают автор — тогда никакие менеджеры паролей не нужны в принципе — справятся и встроенные в chrome/firefox хранилища паролей + синхронизация.

Справедливо. Но речь идет не о том что js блокирует работу страницы и не о том что за счет распаковки и своего выполнения он есть больше памяти, а о том сколько приходит данных пользователю.


Плюс для таких любителей считать объем, которые думают что 1 мб js это много нужно учитывать что в SPA не только зашит собственно чистый js но и возможно css in js + довольно большая часть html кода компонентов и иногда например картинка в base64.


Так что вес страницы нужно мерить полностью. И да внезапно не оптимизированные шрифты которые затребовал заказчик в одном проекте составили 60% времени загрузки страницы и 30% рендера.


Да на Vue тоже можно сделать такую жуть что будет рендерится довольно долго, но это уже не проблема технологии как таковой.


На c++ тоже можно забыть затирать объект в куче и использовать костыли с O(n2) и потом ругаться что он медленный и жрет память.

Часто такие авторы меряют размер того, что выдаст не сжатый dev bundle. А в самом запущенном случае — размер исходников в папках включая node_modules =)


Используя code splitting + gzip + сжатый bundle цифры совсем уже другие.

На самом деле не сложно, фреймворки очень похожи друг на друга. Сперва учить es6+ (месяц максимум) потом мне понадобилась на React 3 месяца а Vue уже освоил за 2 недели.


В сухом остатке — то что я бы делал на jquery + es5 пару месяцев я сделал на Vue за 2 недели.


Компонентный подход не прост — но правильное его использование существенно сокращает работу — тем более готовых компонентов куча и подключаются они проще чем плагины на jQuery.


В плагинах на jq разброд и шатание, каждый плагин это свои хуки, свои структуры данных и куча прочих велосипедов. В React/Vue все компоненты типовые и календарь и компонент перетаскивания файла — дают одно и тоже событие но с разным содержимым, при этом привязать нужный обработчик — это дело пары минут.

Это смотря как собирать и использовать, например у меня есть проект на Vue который полностью весит 32мб но пользователю при работе с сайтом отдается 500кб-1.3мб js в зависимости от страницы, что позволяет работать с сайтом даже при 2G соединении, а учитывая кэш то можно работать вполне даже комфортно.


Да размер jquery меньше но по сравнению с кучей картинок и нестандартных шрифтов — размер не имеет существенной разницы.

Например вот тот же ghost.


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


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


А так подход прикольный — один backend и новости будут и в SPA и Приложении и в телеграм канале и в facebook старнице

Если хотим стабильности то — да обновлять каждый раз и контролировать версии.
Версии нужно контролировать тегами git.


Желательно следовать semver https://semver.org/lang/ru

Наступила неделя "простых инвайтов" от TM, количество некачественно оформленных статей будет увеличено в двое, количество авторов со слитой кармой будет утроено.


Resident234 — если серьезно, то советую пока скрыть статью в черновики и доработать её, пока не слили карму.

Безусловно надо, причем не один а как минимум пару. Один держать в сапоге второй под кроватью.

Пол года без работы по профилю — уже хорошее такое выгорание как по мне.
Стараюсь такого больше не допускать.

Информация

В рейтинге
Не участвует
Откуда
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Дата рождения
Зарегистрирован
Активность