Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (3) 1 [2] 3  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Как я стал программистом, или не стал...
Santehnick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 231
Пользователь №: 26735
На форуме: 5 лет, 8 месяцев, 26 дней
Карма: 15




Цитата (twin @ 2.04.2016 - 08:56)
На мой взгляд уместнее было бы использовать слово here. Вот так куда как понятнее: $here-> То есть "здесь". В этом классе. Может так и подразумевалось, когда использовали слово this

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

Ты так-то прикольный чувак, вечно пишешь про шаблоны и рамки в ооп. Но сам используешь веб и интернет где все по шаблону. HTTP - протокол (соглашение), TCP/IP - протокол (соглашение), UDP - протокол (соглашение), HTML - спецификация (соглашение), EcmaScript - спецификация (соглашение), FTP - протокол (соглашение), Websocket - протокол (соглашение), OAuth - протокол (соглашение), JSON Web Token - спецификация (соглашение). Ну и так далее, куда ты не посмотришь, ты упрешься в протокол или спецификацию, которую нужно реализовать (т.е. следовать определенному шаблону и правилам описанным в том или ином протоколе/спецификации). То есть тоже ничего придумывать не нужно, нужно просто нормально реализовать уже описанный кем-то протокол. Так что твои наезды по поводу шаблонов и рамок в ооп непонятны. Все должно быть стандартизировано.

Я говорю программисту, что он должен написать для меня сервер, который реализует FTP протокол и всё, мы поняли друг друга буквально с полуслова. Он идет читать ftp протокол, прежде чем начинать что-то программировать.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 20 дней
Карма: 725

Не курю:
1 год, 2 месяца, 6 дней


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


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15559
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 1 день
Карма: 299

Трезвый :
5 лет, 11 месяцев, 10 дней


Цитата (Santehnick @ 6.04.2016 - 03:10)
Это на твой взгляд. А на взгляд разработчиков php логичнее использовать то, что уже ранее использовалось в других языках программирования.

Значит ошибся тот, кто придумал это первым. biggrin.gif

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

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


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15559
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 1 день
Карма: 299

Трезвый :
5 лет, 11 месяцев, 10 дней


Цитата (Santehnick @ 6.04.2016 - 03:10)
То есть тоже ничего придумывать не нужно, нужно просто нормально реализовать уже описанный кем-то протокол. Так что твои наезды по поводу шаблонов и рамок в ооп непонятны. Все должно быть стандартизировано.

Кстати, я тут рассуждал по поводу подходов и понял одну интересную штуку. Айтишники делятся на две группы. Я уже говорил об этом.

Отличие их в менталитете. Одни гуманитарии, другие технари.

Технари относятся к программированию, как к инженерному процессу. А такой процесс не любит ошибок. При подготовке эксперимента (в нашем случае при написании ПО) технари стараются всеми способами избежать возможных ошибок. Потому склонны к шаблонному мышлению и использованию готовых, проверенных решений. Они скучны и занудны. smile.gif

Гуманитариям присущ творческий подход. Они не боятся ошибок и пробуют новые, нестандарные решения. Их путь тернист, их обвиняют в bad-practics, они чаще ошибаются, но жизнь их не так скучна и однообразна. И они в большинстве случаев являются двигателями прогресса. Именно они пишут эти протоколы. smile.gif

В холиварах обычно одни спорят с другими.

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

Кто вы по этой градации - решать вам. Все зависит от поставленных в жизни целей, и от свойств характера. Главное быть в гармонии с самим собой.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15559
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 1 день
Карма: 299

Трезвый :
5 лет, 11 месяцев, 10 дней


Цитата (Santehnick @ 6.04.2016 - 03:10)
Я говорю программисту, что он должен написать для меня сервер, который реализует FTP протокол и всё, мы поняли друг друга буквально с полуслова. Он идет читать ftp протокол, прежде чем начинать что-то программировать.

Я не говорил, что стандарты, это плохо. Я говорил, и продолжаю говорить, что ООП это не стандарт. А как раз наоборот - разброд и шатания. А чтобы шатало по не слишком большой амплитуде, каждый устанавливает для себя рамки, называемые паттернами. Чужие рамки объявляются антипаттерном.

Вот опять chee к примеру (ты прости, но уж больно показательно). Он использует практически один тип DI - Property Injection (через свойства). А многие считают это антипаттерном. Ровно как и сервис-локатор.

Я не говорю, что он делает неверно. Он установил для себя удобные ему правила. И считает это каноничным. Это имеет право на жизнь и достойно уважения. Но вот если с его кодом начнет работать программист с другими взглядами, то он начнет плеваться и говорить - отвратительно! По этому о каких стандартах, и о каких полусловах ты говоришь, я не понял. Тут можно говорить только про рамки. smile.gif


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
casper - gg  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Пользователь
Сообщений: 216
Пользователь №: 42190
На форуме: 1 год
Карма: 10




Цитата (Santehnick @ 6.04.2016 - 07:10)
мы поняли друг друга буквально с полуслова

опасная весчь эти полуслова (и в программировании, как и во всем остальном), - все что не досказано, то каждый додумает сам, кто на что гаразд. И потом, - хотели как лучше, а получилось как всегда laugh.gif

Это сообщение отредактировал casper - gg - 6.04.2016 - 14:41
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Santehnick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 231
Пользователь №: 26735
На форуме: 5 лет, 8 месяцев, 26 дней
Карма: 15




casper - gg, протоколы для того и пишут, чтобы никто ничего не додумывал от себя.

Цитата

Я говорил, и продолжаю говорить, что ООП это не стандарт.

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

Цитата

Он использует практически один тип DI - Property Injection (через свойства). А многие считают это антипаттерном.

Ну это уже конкретные шаблоны. Они все плавно вытекают из общих grasp шаблонов. Соответственно, код следует писать так, чтобы он максимально соответствовал тому, о чем сказано в grasp. А какие конкретно решения для этого будут использоваться уже не столь важно.

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

Фанатеть конечно же не нужно. Какой-то уровень технического долга будет всегда. Идеальных программ не существует. Нужно просто стараться, чтобы уровень долга был минимальным, на сколько это возможно, а не давать коду постепенно превращаться в спагетти.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15559
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 1 день
Карма: 299

Трезвый :
5 лет, 11 месяцев, 10 дней


Цитата (Santehnick @ 6.04.2016 - 12:29)
Но там есть правила и принципы, которых советуют придерживаться и вполне доходчиво объясняется почему это стоит делать.

Нет там ни правил ни принципов по большому счету. Ни кто не может ответить однозначно, что такое ООП. Просто методология построения программ на объектах. И всё.

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

Цитата
Соответственно, код следует писать так, чтобы он максимально соответствовал тому, о чем сказано в grasp. А какие конкретно решения для этого будут использоваться уже не столь важно.
Почему именно GRASP? Других схем в ООП вообще не cуществует?


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Santehnick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 231
Пользователь №: 26735
На форуме: 5 лет, 8 месяцев, 26 дней
Карма: 15




Цитата
Почему именно GRASP?

Ну потому что это общие описательные шаблоны, которые дают ответы на проблемы, возникающие при разработке почти любого проекта. Из них вытекают некоторые принципы и конкретные паттерны. Можно взять паттерн или принцип и убедиться, что он так или иначе связан с тем или иным шаблоном из grasp. Например mvc связан с inderection из grasp, di с low coupling из grasp, OCP из солид связан с polymorphism и protected variations из grasp.

Цитата
Других схем в ООП вообще не cуществует?

Существует. Спагетти код называется. Вот типичный пример https://github.com/PrestaShop/PrestaShop/bl...lasses/Cart.php
Даже не вникая, можно c уверенностью сказать, что как минимум нарушен informational expert из grasp. Неправильно распределены обязанности, поэтому код превратился в спагетти. Хотел бы ты поддерживать такой код? Очень сомневаюсь.

Чтобы этой и некоторых других почти всегда возникающих проблем избегать, некоторые пользуются тем, что предлагает grasp. Но большинство конечно же не пользуется вообще ничем, а просто вываливает в редактор всё, что скопилось в голове особо над этим не размышляя. В php вообще не особо принято развиваться. Достаточно посмотреть любой php форум или php листинги, чтобы это понять.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15559
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 1 день
Карма: 299

Трезвый :
5 лет, 11 месяцев, 10 дней


Цитата (Santehnick @ 6.04.2016 - 15:11)
Существует. Спагетти код называется.

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

Я не думаю, что Фаулер или Грэм пишут спагетти-код.

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

И кстати, многие принципы применимы не только к ООП. Да и к ООП можно применять их либо не полностью, либо дополнив своими. Что и делают экспишники. Так что это тоже не стандарт, это даже не цельный набор. Это сборник советов, как решить возникшую проблему. А она может и вовсе не возникнуть.

Конечно, тот код, что ты привел в пример - за гранью понимания. Вообще не понятно, какой трудовой понос прохватил автора, что он не поленился написать столько кода в один файл. Зачем тут GRASP вообще, если даже просто скролить палец устает. smile.gif Тут элементарно нужна голова, не более.

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


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2102
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 2 дня
Карма: 70




twin
Цитата
Так и не видно четких правил и принципов построения программ, которые можно назвать "истинным ООП".

В принципе и есть и можно, только тут один нюанс - на вкус и цвет товарища нет.
Потому что приложение строится с применением каких то подходов, одним нравятся одни подходы, другим другие, всем не угодишь.
Один хочет седан с коробкой автомат (DIC), другой хочет велик с алюминиевой рамой (SL).
Вот и обсирают друг друга, ездил по трассе москва-питер?
Фуры ненавидят легковушки, легковушки ненавидят фуры. И все по своему правы и не правы одновременно.


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15559
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 1 день
Карма: 299

Трезвый :
5 лет, 11 месяцев, 10 дней


Цитата (Arh @ 6.04.2016 - 17:08)
В принципе и есть и можно, только тут один нюанс - на вкус и цвет товарища нет.

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


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2102
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 2 дня
Карма: 70




twin
Цитата
Когда у каждого свои правила

Не правила, а реализации.
Например реализация DI у chee вписывается в SOLID, но мне она не нравится, потому что она урезанная, накладывает ограничения.
Нельзя сделать инъекцию в метод или конструктор, а без этого иногда никак.

Например у себя я вот так могу описать подключение к memcache
'MemCache' => [
'class' => [
'name' => 'Memcache',
'method' => [
'connect' => [
[
'string' => '127.0.0.1'],
[
'int' => 11211]
]
]
]
]

Как это сделать через свойства я хз.

А правила ООП в принципе довольно чётко описаны в SOLID.


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1780
Пользователь №: 38654
На форуме: 2 года, 11 месяцев, 1 день
Карма: 40




Цитата (Arh @ 6.04.2016 - 22:32)
Как это сделать через свойства я хз.

отписал в другой теме


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

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Santehnick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 231
Пользователь №: 26735
На форуме: 5 лет, 8 месяцев, 26 дней
Карма: 15




Цитата
Зачем тут GRASP вообще, если даже просто скролить палец устает.

Я же пишу, что если здесь применить информационный эксперт из грасп, то палец не будет уставать скролить. Устает он, потому что этот шаблон здесь нарушен.

В общем, я пытался донести мысль, что если программист знаком с грасп, то сможет замечать общие проблемы в коде. Видно моментально, какие участки кода сильно усложнились и требуют рефакторинга.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (3) 1 [2] 3  Ответ в темуСоздание новой темыСоздание опроса