>>232510329 (OP) Программа строится из кирпичиков, а не хуярится сплошным кодом. Это типа должно облегчать работу с кодом, поправить функционал одного кирпичка, а не анализировать всю программу.
ООП - (англ. otsos-opa) - псевдоинтелектуальное объяснение несуществующей ирл логической конструкции, присущей человеческому сознанию. Нахуй не надо. Го в функционалку.
>>232510329 (OP) Оружие Ограниченного Поражение, стреояющее резиновыми пулями Он же травмат, резинко/гандонострел, шароплюй, пистолет для русских, он же говно
>>232511232 >>232511359 > ой ОП отклеился Точнее ООП отклеился, для этих псевдоязыков такие сложные вещи не нужны. Прочитай про прототипы в js, передерни и выдохни.
Блядь, миллион книжек написали, и триллион курсов наплодилось, где это всё на пальцах для даунов объясняется, а ты всё равно пришёл на двач со своим тупым вопросом?
>>232510329 (OP) Древний мем эпохи палеозоя. Тогда для структурирования программ решили, что все объекты можно поделить на классы и их экземпляры. На самом деле это убогая концепция, ФП намного лучше.
У тебя есть шаблон таблицы экселя. В ней есть все колонки, словом всё, что может сгодиться любому сотруднику в твоём отделе. В самом отделе люди занимаются разной деятельностью, которую нужно записывать в таблицу. Но так как есть общий шаблон, они эту таблицу не пишут сами, а берут из общего шаблона только нужное в определённый момент времени. Записывая по факту в 1 и тот же шаблон разные данные.
>>232514743 Ооп это типо. Есть класс собака. Есть интерфейс домашняя, в интерфейсе метод жрать корм. Класс собака питомец наследует класс собака и класс домашняя собака. Ты завел собаку - создал инстанс класса собака питомец, у нее будет метод жрать корм из интерфейса. Инстансы класса собака, которые бегают по улице, не наследуют интерфейс домашняя и поэтому не жрут корм. Все.
ООП - это когда ты представляешь каждый кусок кода как объект, отсюда и название. Выгляни в окно, и взгрустни там деревья, машины, другие здания. Их все можно выпизднуть в отдельные категории (они же классы), сгруппировать. У каждого класса есть свой набор особенностей, у собаки - функция срать, у дерева - функций нет, но есть параметры высота/ширина. Суть ты уловил. И в веб-программировании это нихуя не нужно.
>>232515576 Это на случай, что домашней у тебя будет не только собака. Может и кошка, тогда класс кошка питомец будет наследовать базовый абстрактный класс кошка и интерфейс домашняя. Но вообще сложные иерархии это антипаттерн, как и ООП в прицнипе.
>>232515898 В том что объекты неизменимы и нет сайд эффектов - в сложных, особенно многпоточных проектах это упрощает код и уменьшает вроятность ошибки. В противном случае, ты не можешь гарантировать что obj.getInt() два раза подряд выдаст тебе одинаковый результат. Или что он не вызывает дроп датабейс внутри себя. Про многопоточность молчу.
>>232515697 >Но вообще сложные иерархии это антипаттерн, как и ООП в прицнипе. Воу, ну буду тешить себя тем, что пришел к этому эмпирически и это не было в результате своей тупости. Вообще я окончательно сломался на полиморфизме. И говнокожу мелкоскрипты простыми функциями для души.
>>232515357 ну звучит довольно понятно >И в веб-программировании это нихуя не нужно. а почему в книгах про php про ООП пишут как уже что то базовое для этого языка?
>>232516320 Мне вообще в кодинге нравится решать задачки на алгоритмы, на том же литкоде. А все это говно типо паттернов, фреймворков привнесла индустрия, жадная до бабла.
версия выставлена на 3.9.0 И сразу же ошибка в строке python3 -m venv tutorial-env
оно не может понять python3, причём python воспринимает корректно. Почему так? Это ведь официальная документация для актуальной версии? Или я что-то не понял?
>>232510329 (OP) ООП - это такой довольно расплывчатый термин. Под этим иногда понимают несколько разное.
Но если на пальцах, это такой подход, при котором в одном месте группируются данные и взаимодействие с ними. Объект - это и есть набор полей (то же самое, что переменные - но находящиеся внутри объекта) и методов (то же самое, что процедуры - но связанные с этим объектом).
Причём, заниматься объектно-ориентированным программированием не обязательно на ООП-языках с классами. На них это делать удобно, там есть встроенная поддержка ООП.
А так, это можно делать и на обычном C (без плюсов).
Просто используй структуры (struct), то бишь набор переменных, сгруппированных в одну переменную. И в процедуры первым параметром передавай ссылку на структуру, и будет тебе примитивный ООП средствами языка, в котором поддержки ООП из коробки нет.
>>232510329 (OP) Парадигма программирования, проще говоря такой стиль. Ты можешь написать любую программу в принципе в любом стиле: хоть в императивном, хоть в функциональном, хоть в структурном, но есть одно но - это то каким получится твой код в конечном счете. Попробуй реализуй программу не из одного алгоритма (сортировка пузырьком это вся твоя программа), а из множества причем с меню каким-нибудь и еще фичи добавь, и ты поймешь, что поддерживать такой код и добавлять функционал в прогу в привычном решении (все напишу в мейне если ты вкатыш) становится все сложнее. А теперь представь каеово писать что-то сложное, поддерживать и расширять функционал кода, если он в императивном стиле написан? Заебешься. Собственно для таких вещей придумали ООП. Сама идея простая: ты создаешь класс и методы, которые делают нужные тебе вещи для множества переменных, ты даже можешь создать класс-наследник, и просто вызываешь их по методам. Возникает понятная иерархия кто за что отвечает (для этого есть принцип SOLID, как бы идея идеального ООП), это становится легко масштабируемым и поддерживаемым, что облегчает работу по обслуживанию кода.
>>232510329 (OP) Есть объект человек. У него есть свойства, число ног, рук и метод - выебать в жопу, выебать в рот. Есть объекты кун и тян, у них новые свойства хуй и пизда. И новый метод - выебать в пизду только к тян. Но тян и кун наследники от объекта человек и у них столько же рук и ног и их обоих можно выебать а рот и жопу
>>232517729 Там у половины такие вопросы. Не знаю, как сейчас. Кроме того, я еще глупее спрашивал и аноны помогали. Главное - без негатива и не засирать тред.
>>232511232 PHP неудачный вариант для новичка. Язык сложный, возможностей мало, работы тоже мало, а на каждую вакансию десяток макак. Сейчас каждый школьник учит PHP, а потом не знает что делать с ним. Лучше попробуй Haskell. На нём и конкуренция пониже, и зарплаты больше, и сам язык понятней. Если никогда не занимался программированием, то начинать лучше всего с Haskell - после него другие языки учатся быстрее. Работы полно, платят отлично. По книгам. Если есть хоть немного знаний программирования, читай это: http://www.ozon.ru/context/detail/id/30425643/ Если совсем новичок, пойдет эта книга: http://www.ozon.ru/context/detail/id/28346038/ Ну и куча онлайн-учебников. Вот, например: https://anton-k.github.io/ru-haskell-book/book/home.html Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
>>232510329 (OP) Это концепция разработки, основанная на инкапсуляции - то есть любой объект старается максимально не лезть не в свое дело и не менять состояния других объектов, а вместо этого просит их сделать это самостоятельно. Очень помогает в больших проектах, над которыми работают много человек, в маленьких проектах только усложняет и мешает процессу разработки.
>>232518096 Как раз паттерны - это хуйня из под коня. Нужно их назубок значть со всеми их идиотскими названиями только для того, чтоб было на что сослаться во время code review, будучи джуном. Ну типа когда смотрит на тебя ревьюер из мудлов и вопрошает, что за хуйню ты нагородил. А ты вместо правды "ну, костыли и архитектура через жопу сделана - не могу сделать просто и элегантно, поэтому нахуевертил сложно и громоздко" пиздишь ему про "фабрика туда, стратегия сюда" и он такой - "оооо, ааааа" и пропускает коммит.
Вы прослушали лекцию про основное и главное применение паттернов ООП на практике.
>>232510329 (OP) Это типа когда ты инфу представляешь большими категориями, типа есть категория яблоки, у них есть свойства, например размер цвет и вкус. Чтобы создать конкретное яблоко, ты один раз создаешь общий объект яблоко, а потом с помощью этого объекта каждый раз создаешь яблоко с разными параметрами, например красное, мелкое и сладкое, или зеленое, кислое, среднее и т.д. В модульном программировании тебе пришлось бы каждый раз создавать яблоко с нуля, а в ООП, ты лишь присваиваешь каждому определенному яблоку параметры.
>>232519285 Мозги надо в голове иметь и опыт. Отчётливо себе представлять, что ты пишешь, какое развитие у кода возможно в будущем и каков уровень у тех, кто это потом поддерживать будет или уже с тобой в команде работает.
Сложные и "в теории" правильные архитектуры зачастую тупо не совместимы с высокой производительностью и приемлемым расходом памяти. Начнёшь писать оптимальный код - начнёшь постоянно идти на компромиссы со "стилем программирования" и залупецкими "правилами проектирования". А всё потому что всему своё место. Сеньор помидор нередко вынужден писать отвратительно выглядящий код, от которого у джуна крыша поедет, если он попытается в нём что-то понять. А всё для того, чтоб сэкономить пару десятков процентов расхода памяти и процессорного времени, когда это всё стоит реальных денег и сисадмин тебе выкатывает претензии из-за того, что нагруженная система еле ворочается, а апгрейд железа в этом году не предвидится вообще из-за ковид 19 и курса доллара.
>>232520096 Сужу по рассказам друзей программистов. Гиков ты практически не встретишь. Для них индустрия практически умерла. В основном веслают нормисы.
>>232520963 Да нет, на деле всё не так. Гики в массе своей не пишут код лучше и их рабочая производительность ничем не лучше. Они просто гики без жизни вне пека. Нормис может научиться всему тому же самому, и при этом ещё и будет более вменяемый, без гиковских понтов, и не будет устраивать на рабочем месте скандал на тему винда vs Linux или C# vs Haskell Нормис решает конкретные задачи в конкретные сроки с выданными ресурсами, а не "самовыражается".
>>232521618 Иными словами, все так, как я и написал. Просто ты добавил, чем конкретно гики хуевы на деле. Но я их люблю. Все самое охуенное в программировании придумали они.
>>232521816 Проблема в том, что ты путаешь принадлежность к субкультуре гиков с профессионализмом. На заре индустрии этим занимались гики и таки становились профессионалами - потому что кроме гиков этим никто не занимался. При этом гики часто рожали отвратительные, ужасающие, чудовищные по нынешним меркам вещи типа раннего почтового клиента под юникс с его меметично упоротыми конфигами. Или типа emacs на собственном диалекте лиспа. Но другого то не было.
А сейчас "гик" - это чаще всего нахватавшийся по верхам пидарас с понтами, прогруженный "субкультурой" и её приколами, и постоянно строящий из себя гуру IT, не являясь им даже близко. И даже крепким профессионалом не являясь, а являясь дилетантом, который своей гиковостью как бы показывает всему миру, что его левел якобы в 10 раз выше реального. И это его сознательная стратегия в индустрии.
>>232522294 Я опираюсь в своих суждениях в первую очередь на книгу хацкеры, в которой вполне себе описано, что занимались этим все подряд кого пускали к компам , начиная от кружка любителей железной дороги МИТ и школяр уделывал в программировании суровых инженеров.
И я согласен, что с точки зрения профессионализма они уступают нормисам того же уровня и ни в одном предложении этого не постулировал. Хоть тут больше играет роль пресловутый нетворкинг, чем что-либо еще.
К тому же, когда я писал, что гики охуенные, я имел в виду именно гиков в классическом понимании этого слова, а не современных стаковерфлоущиков. Собственно, мне и классическая трактовка слова хакер нравится куда больше, чем то, с чем это ассоциируется сейчас.
Для тебя емакс ужасающий - для меня фантастический, особенно для своего времени, хоть я и отношусь больше ко второй категории, описанной тобой.
Т.ч. я ничего не путаю, просто тебе очень хочется поспорить.
>>232523122 Так гиковская культура, какой она была в 70-80 годах прошлого века - мертва. Мертва объективно, из-за доступности оборудования любому человеку. Это тогда работать с компьютерами было реально элитарно. Это стоило сумасшедше дорого, это позволить себе могли избранные, и чаще всего - за государственный счёт. Можно было быть первопроходцем на острие прогресса. И то, самую крутоту изобретали настоящие учёные с мощным математическим образованием, а не гики.
Нынешняя же "гиковская" субкультура - это субкультура задротов в плохом смысле этого слова.
>>232523583 Ну сейчас никто ж не мешает быть на острие прогресса. Просто для этого надо от слишком многого отказаться. Опять же, если брать из книги, первый преобразователь нот в звуки написал не ученый.
>Нынешняя же "гиковская" субкультура - это субкультура задротов в плохом смысле этого слова. Тут тоже соглашусь. Проблема даже больше в том, что при попытке дистанцироваться от неё попадаешь в загоны с отборными шизами и получается такой замкнутый круг.
>>232524055 > Ну сейчас никто ж не мешает быть на острие прогресса. Ну, кроме того, что чтоб на этом острие быть - опять же нужно быть той самой элитой с доступом к ресурсам, которых и близко нет у простых смертных. Как думаешь, может ли простой смертный сейчас заниматься big data или искусственным интеллектом (не путать с тупо нейросетями на питоне)? Или физически моделировать слияние чёрных дыр или развитие галактик во времени? То-то же.
>>232524648 Нет И не нужно. Считаю это поисками философского камня. Зато может нихуево оптимизировать и допилить/перепилить то, что есть и на базе этого создать что-то хорошее.