|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.11.2023, 12:28 | #11 | |
Пользователь
Регистрация: 09.05.2012
Сообщений: 22
|
Начало пути у всех разное. Если вы уже немного понимаете, что нужно делать в программировании - можно и пытаться делать "как надо". Но если вы путаете инкремент с декрементом и вызов функции для вас это какое-то магическое событие - стоит сосредоточиться непосредственно на программировании, не задумываясь о плохом и хорошем стиле.
Лучше научиться писать код, который работает, нежели задумываться о количестве пробелом и правильности расстановки переносов. Для начала, конечно же. Однако чем раньше вы начнете писать читабельный код - тем лучше для вас же (в том числе и потому, что вам охотнее будут помогать, если код не будет выглядеть, как будто вы на клавиатуру сели). Но есть хорошие помощники - установите любую современную IDE (я использую PHPStorm, но есть и хорошие бесплатные решения), и она будет помогать вам красиво оформлять код. Само начнет получаться. Цитата:
Это очень хорошая практика для обучения. А в работе лучше пользоваться более профессиональными решениями, даже если поначалу кажется иначе (просто очень быстро придет осознание, что даже нормальный класс для работы с базой данных пишется и отлаживается довольно много часов, что уж говорить про более серьезные библиотеки). Все мы учились понемногу, чему-нибудь и как-нибудь. Не стесняйтесь задавать вопросы (сначала всезнающему гуглу, и только если он окажется бессилен помочь - тогда уже и людям). Дорогу осилит идущий. |
|
03.11.2023, 15:01 | #12 |
Форумчанин
Регистрация: 27.04.2022
Сообщений: 495
|
слово хорошие в этом предложении лишнее
стимулятор https://yoomoney.ru/to/41001303250491
|
07.11.2023, 08:14 | #13 |
Пользователь
Регистрация: 09.05.2012
Сообщений: 22
|
Если с коммерческими продуктами сравнивать - бесплатные, как правило, закономерно проигрывают. Но, при отсутствии желания использовать коммерческие продукты, я бы выделил бесплатные решения - Netbeans и VS Code. Обе среды довольно пустоваты из коробки, но это всяко лучше чем Sublime Text или Notepad++. Имхо.
Сам я пользовался Netbeans, пока наша компания не закупила всем сотрудникам лицензии на шторм. Вполне функциональная среда, разве что в 2023 она выглядит немного олдскульно. |
07.11.2023, 12:39 | #14 |
Форумчанин
Регистрация: 27.04.2022
Сообщений: 495
|
Мне больше всех понравился Eclipse но там действительно надо сильно постараться с установкой кучи плагинов и их настройкой.
VS Code использую только когда надо открыть какой-нибудь огромный XML файл. P.S. Из шторма отстрелили апсорс, это прям печаль.
стимулятор https://yoomoney.ru/to/41001303250491
|
07.11.2023, 17:10 | #15 | ||
Регистрация: 31.10.2023
Сообщений: 8
|
Liris,
Воу, спасибо за столь обширный ответ. Цитата:
Я бегло просмотрел разницу между IDE для PHP и решил что нужно использовать PHPStorm. Да, он платный, но он топ если ты не бек и JS планируешь использовать в работе. Тем более, что можно использовать 30ти-дневный пробный период. Сейчас как раз в работе над его изучением и накидывании на него дебагера и снифера. Цитата:
|
||
07.11.2023, 22:30 | #16 | |
Пользователь
Регистрация: 09.05.2012
Сообщений: 22
|
Цитата:
В целом, ООП отлично подходит для крупных приложений, потому что позволяет более удобным способом (по сравнению с процедурным подходом) разбивать код на отдельные модули. Основные принципы ООП крутятся вокруг: абстракции, инкапсуляции, полиморфизма и наследования. Если попроще: - абстракции позволяют разбить всю логику на слои (или уровни), где на каждом слое мы оперируем лишь теми понятиями, которые нам необходимы. Представьте, что мы строим каркасный дом. На верхнем уровне мы знаем, что для постройки дома нам нужно сделать фундамент, собрать каркас дома, отделать его внутри и снаружи. Описывая операцию "сделать фундамент" мы не задумываемся даже о типе фундамента (будут ли это винтовые сваи или бетонная плита - это можно описать уровнем ниже), не говоря уже о самых низких слоях (смешивание песка и цемента для получения бетона, или добычу железной руды и ее плавку для отливки сваи). - инкапсуляция позволяет скрыть излишние подробности внутри класса. Нам не нужно знать, как выплавляется свая, чтобы ее использовать. Достаточно прочитать краткую инструкцию, каким концом ее вставлять в землю и в какую сторону закручивать (или забивать?). - полиморфизм позволяет работать с разными реализациями одним и тем же способом. Представьте, что мы продолжаем строить дом. Собираем каркас. Используем шуруповерт и саморезы. Эти саморезы из латуни, а вон те стальные, а эти, похоже, алюминиевые. Все они разные, но мы используем их одним способом - прикладываем шуруповерт и вкручиваем в балку. - наследование позволяет передавать часть функциональности от одного класса к другому. Мы уже достроили свой дом и заселяем его жильцами. Первой в дом заходит кошка. Потом заводим собаку и заносим черепаху. У нас трое животных, и если представлять их как классы, то это были бы классы - Cat (кошка), Dog (собака) и Turtle (черепаха). У них у всех есть общие черты, которые можно было бы описать в одном классе Animal (животное). У всех животных можно выделить общие способности - есть, спать, перемещаться. Нет нужды каждому животному отдельно описывать эти способности, опишем все это в классе Животное, и укажем что Кошка, Собака и Черепаха являются наследниками класса Животное (при этом автоматически приобретая все способности, описанные в классе Животное). |
|
07.11.2023, 22:34 | #17 |
Пользователь
Регистрация: 09.05.2012
Сообщений: 22
|
Реализуя вышеизложенные принципы, мы упрощаем себе жизнь при разработке больших приложений, потому что:
1) мы описываем сложную логику на низком уровне и больше к ней не возвращаемся, оперируя более высокоуровневыми методами (это, кстати, используется и в процедурном программировании) 2) скрываем детали реализации, предоставляя простой интерфейс для использования (и снова простая функция в процедурном стиле может делать то же самое) 3) позволяет указывать контекст, в рамках которого применяется та или иная функция (в ооп функции называются методы). Тут чуть подробнее. Приведу пример. Допустим у нашего приложения есть модуль для работы с сетевым принтером. И у него есть функция print(), которая позволяет вывести текст на печать: Код:
Код:
Теперь попробуем описать эту логику при помощи классов. И не испытаем проблем: Код:
|
30.12.2023, 08:32 | #18 | |
Форумчанин
Регистрация: 05.09.2017
Сообщений: 157
|
Цитата:
Основные преимущества использования ООП:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Fortran стандарты | Freemandes | Помощь студентам | 0 | 11.05.2014 13:47 |
Стандарты IEEE | Sam Gold | Обсуждение статей | 2 | 10.03.2011 14:16 |
где искать стандарты? | Пепел Феникса | Общие вопросы по программированию, компьютерный форум | 4 | 14.05.2010 21:43 |
Языковые стандарты | _SERGEYX_ | Общие вопросы Delphi | 5 | 27.02.2009 09:53 |
Язык и региональные стандарты | All517 | Общие вопросы Delphi | 4 | 13.08.2008 07:06 |