Pull to refresh
-2
0
Сергей Анатольевич Прожерин @sergeypr

системный администратор

Send message

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

Писать надо так, чтобы не было "мучительно больно за зря потраченное время"!

Причем как своё - на переделки, так и чужое - на попытки понять, что же там он "наваял" за "10 минут"... И, нет, я не говорю, что нельзя стандартную функцию написать за "10 минут" - можно..., но вот будет ли она "лучшей реализацией" в данном проекте? Сомневаюсь... Каждый проект (по крайней мере у меня - я не программист, всё таки - я админ, если и пишу то только то, что мне интересно, остальное отдаём на аутсорс) уникален и, даже, если в итоге, потратив на поиск оптимального кода я потрачу пару дней, напишу код, аналогичный Вашему, я буду уверен, что выбрал оптимальный на сегодня вариант!

А "завтра" я опять потрачу пару дней на рефакторинг, потому что мир не стоит на месте и возможно появилась лучшая реализация кода...

Я немного не о скорости...

Вот, например, сколько Вы знаете способов реализации CRUD в PHP?

Я, на момент, когда мне понадобилось, знал 3 варианта... Сейчас знаю уже десяток РАЗНЫХ вариантов, из которых "собрал" тот, что мне нужен, плюс (из-за того, что подсмотрел, как реализуют другие) добавил "красивостей" и защиту "от дурака" в свой код...

Да, мне понадобилось не 10 минут на написание кода - я потратил 2 дня, но, код, в результате, стал лучше, скорость работы возросла, защита усовершенствовалась, в общем, я не считаю, что зря потратил 2 дня на поиск лучшего варианта - взамен я написал код лучше и, как мне кажется, более "читаемым" для будущей поддержки уже не мной (так как я пишу продукт для достаточно широкой аудитории, я еще и комменты в коде пишу максимально подробные - на будущее), весь код разделен на классы, каждый класс делает свою маленькую функцию, каждый класс максимально описан - для дальнейшего изменения в данном коде (а изменения будут - продукт "живой") мне понадобится в N меньше усилий, чем вносить изменения в код за "10 минут"...

А, если учесть, что в данном проекте у меня есть (на сегодня, что будет завтра я пока не знаю) 4 разных MySQL таблицы, с абсолютно разными вариантами полей, то написав свою реализацию CRUD (скомпилированную из разных, подсмотренных мной, вариантов из интернета) я, в итоге, уменьшил код примерно в 2 раза, относительно первоначального варианта, что тоже считаю хорошим достижением - вот такой вот рефакторинг "на лету"...

Может я и неправ, но, как я уже писал сверху - я перфекционист, люблю делать "сразу" хорошо

Основная проблема джунов - отсутствие интересных (или хотя бы реальных) задач для обучения...

Давайте наооборот - дайте реально сложную задачу для написания (так, чтобы ТЗ было на 9+ страниц 😀, но нормальное ТЗ!) и посмотрите, как будут решать

Кстати, интересно было бы посмотреть на решение этой задачки здесь присутствующими (javascript, конечно же, любой фреймворк, по желанию (у меня jQuery):

  1. На форме есть select - в нем выбираем одно из 26 предопределенных значений (пусть будет item0...item25), после выбора - записываем в БД. При открытии формы на добавление новой записи, на этапе выбора в select, уже записанные в БД значения должны быть недоступны для выбора (то есть, если в БД уже есть записи с item4 и item6, то, при открытии, списка select, эти значения должны быть disabled (или не видны вообще). (Пока все просто, да?)

  2. Если мы открываем запись на редактирование (та же форма) - то всё аналогично, за исключением того, что itemХ, который, принадлежит данной записи должен быть доступен (то есть, открываем на редактирование запись, где указано item6, например, в этом случае item6 должен быть доступен для выбора!).

    Есть желающие показать варианты решения такой (простенькой) задачки?

    В реальности код, в итоге, со всем форматированием (vs code, форматирование по умолчанию) - 15 строк.

на 200% процентов согласен с teimur!!!

Цитата:

"Я не пройду собеседование, не то что на джуниора, но даже и на программиста, несмотря на то что у меня есть проекты которые продаются и приносят деньги, магазины, интеграции маркетплэйсов и т.д. К сожалению мне приходится работать на javacript (node js и его библиотеками, react, vue, jquery, нативным javascript), php (laravel, нативный php) python (django, Flask). И мой мозг просто не в состоянии запомнить все методы работы со строками, массивами и т.д. этих трех языков. Они путаются в голове и забываются. Из за чего приходится просто открывать справочник. И на собеседовании я врятли точно вспомню как пишется та или иная функция."

У меня абсолютно аналогично - по работе приходится решать задачи на php, js, bash, mikrotik, vmware, proxmox, настройке linux (от IPTV, LAMP до Zabbix), настройке свитчей... В том числе легаси код, бывает что и 10 летней давности...

В результате я всё это знаю, умею и делаю - например, сейчас делаю большой проект на php+js (IPTV сервер для интернет провайдера), но собеседование даже на джуна 100% не пройду, так как из-за разнообразия "зоопарка" ЯП привык (и считаю это правильным!) решать задачи посредством гугления и осмысления того, что нагуглил (обычно 5-10 разных вариантов решения требуемой/аналогичной задачи хватает чтобы написать оптимальный код на любом языке). Спроси меня собеседовании, как решить простенькую задачу, например вывод на форму элементов в зависимости от уже выбранных - я могу принцип рассказать, а вот написать это за 2мин/полчаса - нет!

И это, я считаю правильно! Как пример - та же задача (выше, на форму) - переписывал 5 раз, в итоге, из 100+ строк осталось 12 (!!!), но через неделю, спроси меня еще раз написать тот же код - не напишу - надо погрузиться в задачу, посмотреть на аналогичные решения, оптимизировать (да, да, я "перфекционист") до "конца!"

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

  1. Moom для управления окнами - 1 раз настроить и забыть - очень удобно!

  2. Папку Application вывести на Dock (рядом с загрузками - с настройками по аналогии - я например поставил Сортировка - по имени, Отображать - папкой, Показывать содержимое как - список) - получается ПОЛНЫЙ аналог меню "Пуск" в Windows.

  3. правый клик мышкой на иконку приложения в Dock - показать все окна - покажет ВСЕ (и свернутые!) окна (при этом свернутые окна будут внизу, развернутые наверху - логично?)

  4. Я системный администратор в интернет-провайдере... открытых окон у меня - сотни! На хроме до 300 вкладок, фотошоп, удаленка, офис, телеграмм, задачи, торрент-качалка, спец программки, терминалы (десятки окон) и так далее... реально десятки приложений постоянно запущены и сотни окон в них... Это я к чему: у меня два отдельных компа - Mac OS Sierra (i5/8Gb/240Gb SSD + 1Tb HDD) и Windows 10 (i5/8Gb/240Gb SSD + 1Tb HDD) - да практически одинаковых, если не считать поколение процессора - на Mac i5 6400, Win - i5 10xxx... ПРОИЗВОДИТЕЛЬНОСТЬ, отклик программ и интерфейса - кардинально отличаются - на Mac все работает быстро, на WIn постоянно тормоза.

  5. Если есть iPhone - Ваша продуктивность возрастает в разы! быстрая синхронизация всего что надо: Заметки, Напоминания, iCloud Drive, СМС и прочая и прочая... - ОЧЕНЬ помогает в моем случае!

  6. Задолбали, нет не так - ЗАДОЛБАЛИ обновления на Win! Я даже не говорю о десктопе - у меня десятки серверов на Win server 2019 - сервера начинают дико тормозит, если есть обновления, пока не установишь и (ППЦ!) не перезагрузишь.

А подробнее? для справки...? Воюют ИГ и США/Россия/Турция/коренное население? И почему?
Потому, что США хочет иметь нефть и влияние в Сирии — при чем здесь язык?
Повторюсь (может непонятно написал?) нужен единый ЯЗЫК и единое ГОСУДАРСТВО на ВСЕЙ планете! Я не против разнообразия национальных традиций, но, оладушек (который блин), как же хочется единое государство… Открытые границы, свободное передвижение по планете, без надуманных барьеров в виде границ (от которых выигрывает только коррумпированная верхушка), единая валюта, общая наука и прочие плюшки… Представьте сколько сил и средств можно съэкономить: исчезнут национальные армии, гонка вооружений, многочисленные повторные "велосипеды" в науке… Население распределиться по планете в наиболее благоприятные области для проживания, появятся единые стандарты измерений величин (анг/метрическая)… Медицина, наука и обучение сфокусируются на том, для чего они предназначены (а не так как сейчас, например, когда обучение в школе используется для "патриотического" воспитания с уменьшение полезных знаний для жизни)…
В общем для меня (IMHO) преимущества единого государства и языка сильнее надуманных проблем потери идентификации "национального" сознания.

Были доказанные случаи нормальной жизни с полным самосознанием с сильно повреждённым мозгом-вплоть до 70-90% от общего объёма… как тут быть?
А мне интересно, почему все зациклились на ИИ?
Вообще то технологическая сингулярность предполагает развитие техники (не только ИИ).
Как вам, например, мысленный контроль над материей при помощи техники? Обмен мыслями при помощи техники?
Чудо таблетка для регенерации тела?
Виртуальное пространство — новый интернет?
Мне кажется что данные вопросы посерьёзнее чем «обиженный» ИИ
Неистово плюсую — более того, просьба оценить приложение выскакивает периодически… и каждый раз приложение падает при нажатии любых кнопок внутри формы «просьбы»
Можно, вот только сразу после прошивки он потребует пароль от Apple ID, и чужой Apple ID не подойдёт
А ещё все таки очень сильно похоже, что вселенная все таки симуляция:
1. Частота колебаний «отдельных» «островков» энергии- частиц где то должна храниться. Частицы бывают очень разные но все они колебания энергии с разной плотностью и частотой-и где же «записано» с какой именно?
2. Скорость света, как ограничение передачи информации = ограничение искусственное, похоже на ограничение «сверху», то есть среды модуляции. При этом вполне возможны случаи «квантовой» телепортации — как если бы мы записали в разные ячейки памяти одинаковые параметры, а потом одновременно прочитали их-расстояние между ячейками может быть сколь угодно большим, информация будет одинаковой.
3. «Темная материя» вполне себе может быть средой выполнения симулятора (как изнутри программы выглядит компьютер)
Вообще непонятно о чем спор? Электрон это колебание некой ЭНЕРГИИ, естественно что у него не может быть материального воплощения и размера (хотя в некоторых экспериментах он может проявлять себя как частица). И да мы на 99.(9)% (я бы даже сказал на 100%-материи нет- есть только колебания энергии с разными плотностями и частотами) состоим из пустоты, однако пустота эта мнимая, так как колебания энергии (в виде электронов и прочих частиц) определяют всю нашу материю.
Второй вопрос, который мне всегда не давал покоя в модели расширяющейся вселенной: например, есть какая либо звезда в точке, максимально от нас удаленной-мы видим что она от нас удаляется-модель расширения верна-если от «них» смотреть в нашу сторону — тоже вроде все правильно… а вот если от «них» смотреть дальше по «курсу»- что «они» увидят?
Исходя из данной статьи пространство между точками увеличивается, а сами точки нет? Я понимаю, что точки — абстракция, но тем не менее вопрос: как получается, что расстояния между атомами не увеличиваются, а пространство расширяется? Или атомы не принадлежат пространству? Да и другие мат объекты вроде как, как то не испытывают тенденции к расширению? А если все таки (по логике статьи) все расширяется, то получается, что все формулы, которые описывают взаимосвязи между объектами пространства должны непрерывно корректироваться, ведь абсолютные расстояния, например между атомами в кристаллической решётке все время растут?
А ведь на самом то деле все наоборот — только единый язык на всей нашей маленькой планете позволит ликвидировать войны и наконец то заняться развитием человека, оставив в прошлом войны за территорию и/или религию.
А еще таких людей гасят, те кто уже «горит»:
В свое время, в 16 лет, я не знал Камю и «дистинктивность», но не пошел в институт вполне себе сознательно — по тем темам, что мне было интересно(физика, математика, ядерная физика и основы квантмеха), я знал, в момент окончания школы, в разы больше окончивших институт… в 32, параллельно занимаясь собственным бизнесом (была своя фирма — 30 человек, разработка ПО), дошёл до начала понимания основ интересной мне темы… <Паранойя mode on>Вот тут то я и понял, что все достижения по выбранной мной теме отслеживаются — тема позволяет отслеживать такие вещи… Возможность и желание заниматься темой ликвидировали быстро и надежно… Не помогло ничего — фирма в итоге разорилась, сам ушел в админы, где и сижу по сей день, не пытаясь больше «зажечь звезду»<Паранойя mode off>
И, да тема то смешная — принципы строения и управления материей и энергией, в просторечье — магия (Здесь надо отметить, что для меня, магия — просто технология прямого воздействия на нашу реальность, не стоит здесь искать ритуалы и прочую чепуху)
Но, несмотря не «смешную» тему, последствия совсем не смешные — «разгорающихся» гасят уже «горящие» — узнал на собственном печальном опыте.
в атомистической модели — наименьший размер (кусочек) вещества.
в квантмехе (насколько я понимаю) — наименьший стабильный (т.е. наблюдаемый) кусочек пространства, колеблющийся с определенной частотой. Отсюда вытекают эффекты например неопределенности — когда мы не можем сказать в каком состоянии и есть ли вообще данная частица, пока не провзаимодействуем с ней (нарушив (естественно) частоту или фазу (или еще что то, что мы пока не знаем о волнах) пространства
«Разобщенность
Данные должны легко мигрировать по сети. Но сайты никак не взаимодействуют друг с другом. Чтобы перекинуть файл с одного сайта на другой его приходится сохранять на диск, а уже затем загружать на целевой сайт. „

— Возможно, автору и читателям стоит обратить внимание на потребность веба в межсайтовом обмене — например (хотя бы для начала) посредством гуглдиска? Возможно, рынку необходим модуль, который позволит, находясь на сайте, сохранять произвольную инфу и/или файлы в некую сетевую корзину, одинаково доступную на всех сайтах?

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

— Здесь, как мне кажется, речь может идти об универсальном для всех сайтов личном идентификаторе пользователя (ЛИП), который позволит:
— убрать регистрацию на сайтах
— общаться на любых сайтах от одного имени
— ввести сетевую репутацию
— да много чего еще позволит ЛИП…

Моральное устаревание

— Согласен!
И более того, считаю, что многие архитекторы ПО слишком антропоцентричны в своих разработках. Например, возьмем ту же почту — что мешает реализовать новый протокол, целиком бинарный, с прозрачным для сторон шифрованием, с подтверждением личности отправителя хотя бы сертификатами? Ничего… а что мы имеем на сегодня? практически открытый текст пересылаемый по сети?, спам!, фактическое отсутствие идентификации пользователя — и все причины этого — текстовый (человеческий) формат — да, человеку легче понять, если что… но… вроде 2017 заканчивается, можно сделать уже правильно — интерфейс, текстовый для человека, обмен данными — бинарный, для компьютера.

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

— Мало того — мы и в разработке используем “пергаменты», и обмен данными идет в «пергаментах» (а вот тут автор прав — давно пора внутренние коммуникации веба перевести целиком на бинарные протоколы! Например: Разработчик («пергамент» для удобства разработки) — компиляция в бинарник — публикация сайта — при обзоре сайта браузер переводит обратно в «пергамент» для потребления контента)

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

— многие проблемы «размножения» фреймворков и инструментов от текстового формата веба — после перевода сайтов на бинарный формат веба инструментарий веб-программистов упростится (/усложнится?) — до уровня обычных программистов, да и писать сайты скорее всего будут с применением обычных языков программирования.

Замусоренность
Информация должна быть доступна и открыта. Я заметил за собой, что все реже захожу на незнакомые сайты, потому что не хочу натолкнуться на низкокачественный контент в виде кликбейта, всплывающие баннеры, отсутсвие искомого контента или просто отвратительное оформление.
Можно списать на субъективное представление, но откуда тогда такая популярность приложений типа AdBlock? 2015 год стал годом борьбы с навязчивой рекламой, Apple специально добавил возможность создания блокировщиков в Safari.

— а здесь поможет только принятие закона, в котором будет оговариваться кол-во и тип рекламы на сайтах, отсутствие нежелательного контента и прочие необходимые на 2017 год данные: контакты с владельцем сайта, единая аутентификация пользователей (мечты, мечты)…

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

— Не соглашусь — это наоборот хорошо! Тренировка мозга всегда полезна, если автор устает — могу рекомендовать здоровое питание и 8-часовой сон

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

— перевод веба в бинарный формат решит проблему

Когда похороны?
Никогда.

— Как мне кажется «похорон» «текстового» формата веба не будет, но… в ближайшее время ДОЛЖЕН появится бинарный формат веба и потихоньку начать замещать «текст», иначе «текстовый» формат сам себя «похоронит» и уже скоро…

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity