|
Модераторы: Се ля ви |
|
Majestio |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 83 Регистрация: 19.12.2010 Репутация: нет Всего: нет |
Буэнос диас, амигос!
Понемногу изучая Rust, я столкнулся с тем, что привычные приемы проектирования "не работают". Конечно же я об ООП и его паттернах проектирования. Некоторые "коллеги по цеху" уже разочаровались по стопицот раз, переписывая С++ код на Rust. В представленной выше ссылке, как по мне, интересна не сама статья как натянуть сову на глобус, а последующие обсуждения. Там промелькнуло хорошее высказывание "Нет ООП-задач. Есть один из подходов - это используя ООП. Как будто он один единственный" (не дословно). Собственно вопросы к обсуждению Приступая к проектированию проекта, большинство разработчиков, которые худо-бедно владеют ЯП с полной поддержкой ООП, этот подход и выбирают. Я не имею ввиду 100-строчные "хелоу ворлд" утилиты. А нормальные, более-менее сложные проекты. 1) А как быть если полной поддержки ООП в ЯП нет? 2) Есть ли приемы/методики проектирования не менее удобные чем объектно-ориентированное? 3) А есть ли для них свои "паттерны проектирования", которые есть для ООП? ЗЫ: Аббревиатуру "ООП" читаем как "Объектно-ориентированное программирование" или "Объектно-ориентированное проектирование" по контексту. |
|||
|
||||
LSD |
|
||||
Leprechaun Software Developer Профиль Группа: Модератор Сообщений: 15709 Регистрация: 24.3.2004 Репутация: нет Всего: 537 |
Удобство понятие сильно субъективное, но процедурный и функциональный подход существуют и имеют своих приверженцев. На том же Си есть очень большое количество ПО, включая ядра ОС.
Конечно. Широко известный map и reduce это как раз такой шаблоны из мира функционального программирования. ООП в целом достаточно универсальный инструмент и хорошо подходит для большинства задача. Но есть задачи которые им не решаются или решаются плохо. Например ООП не нужно если цель написать скрипт инсталяции и запуска некой программы, там просто не нужны объекты, достаточно процедур. Или например ядро ОС где накладные расходы на объекты не приемлимы. Как правило ООП или не ООП, определяется задачей - насколько там применимы те или иные языки. И наличием разработчиков с соответвующими навыками. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
Majestio, Rust - это заменитель С - языка системного уровня, того, который без плюсов и без решеток... того, который еще от Керниган и Ричи. Языку системного уровня не особо нужны всякие заморочки вроде объектов, так же как они не очень то были нужны С.
Проблема С в том, что он создавался давно, имел довольно странный, по теперешним понятиям, синтаксис и на нем оказалось написано много чего важного, например ядро Юникса. Все это кому-то хочется переписать, вот и появился язык. Правда, как и для всех языков, растоманы желают быть владычицей морскою, а не сидеть отведенной авторами языка луже. вот от того и плач... Предсказываю появлние Rust++, за ним Rust# чтобы история пошла по новому циклу развития ))) -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
LSD |
|
|||
Leprechaun Software Developer Профиль Группа: Модератор Сообщений: 15709 Регистрация: 24.3.2004 Репутация: нет Всего: 537 |
Rust борется не с синтаксисом, он сам не далеко ушел от Си. Основная идея Rust это безопасность, искоренить все эти утечки памяти и обращения по нулевому указателю. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
? h-файлы, перегруженные деталями описания функций и т.д. ? https://nsu.ru/xmlui/bitstream/handle/nsu/9...amp;isAllowed=y страница 31, например... Вот такой он, С ))) Хотя ядро написано уже на более современном, конечно.... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
Не понял, и что там не так ? Учитывая что именно этот синтаксис и заимствовали многие, более "успешные" коллеги ? И что там, кроме не понятно зачем использованного капса ? Это же будет синтаксическая ошибка вроде ) То что там описано, хоть один компилятор си скомпилирует ? ) Может все же лучше на практику смотреть, а не на теорию ? Добавлено через 12 минут и 25 секунд https://stackoverflow.com/questions/2060049...he-linux-kernel 90-й год современность, да |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
По вопросу топикстартера - надо применять подходы (возможно вы их не до конца поняли) используемого языка/фреймворка, а не заставлять язык/фреймворк работать так как вы "привыкли". Если не получается - нафига вам этот кактус ?
|
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
zorn, все копируют базовый синтаксис С++, избегая или меняя классовые различия. Вот он всем привычен и не вызывает раздражение при частом использовании. И не нужно его путать с синтаксисом С. Это две очень большие разницы...
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
||||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
_zorn_, считаю что в теме. Писал что-то для микроконтроллеров на самом настоящем С. В сборках использовался QuickC от Микрософт, он com файлы собирал как-то более удачно, чем борланд.
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
Уделал Но ведь Си не Микрософт изобрел ? ) А что есть "настоящий С" ? То что у вас в голове (потому что "было дело") или то что происходит в реальности ? Ну где мля на Си, INT капсом пишут (ага он case sensitive ) |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
_zorn_, то, что я привел в ссылке - книга самого Кэрнигана и Ричи. Я сам удивлен стилю, но как иллюстрация к моему тезису, что "раньше все было совсем плохо" это подходит лучше. Сам я писал на более привычном - с фигурными скобками, а не закрывающими тегами. Хотя приходилось по 2 раза перечислять параметры каждой функции и еще дублировать описания функций в Н файл.
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
_zorn_ |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
||||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
При чем тут "пишет"? Проблема в том, что нужно "переписать" то, что написано ранее.
Вот, например опубликованы исходники версий юникса для всяких устарелых машин https://www.linux.org.ru/news/opensource/13319215. 1972 год...
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
LSD |
|
|||
Leprechaun Software Developer Профиль Группа: Модератор Сообщений: 15709 Регистрация: 24.3.2004 Репутация: нет Всего: 537 |
Стиль кода, это не самая большая проблема. В новом проекте можно принять новый, хороший стиль кода. Проблема в концепции. Си как был "высокоуровневым ассемблером", так им и остался.
А новые языки пытаются привнести новые парадигмы: Go - асинхронность, Rust - безопасность. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Правила форума "Системный анализ, проектирование и UML" | |
|
Форум "Системный анализ, проектирование и UML" предназначен для обсуждения вопросов, так или иначе связанных с этапами жизненного цикла автоматизированных (программных, информационных, автоматических) систем: • предпроектные обследования объектов автоматизации; • разработка концепции создания систем; • моделирование бизнес-процессов (в т.ч. на UML); • проектирование архитектуры систем; • управление проектами; • управление качеством; • CASE-средства; • реинжиниринг. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Системный анализ, проектирование и UML | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |