реклама на сайте
подробности

 
 
> как писать на С в 2016 году
Jenya7
сообщение Jan 25 2016, 15:06
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



прочитал интересную статью. решил поделиться.
https://habrahabr.ru/company/inoventica/blog/275685/
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sigmaN
сообщение Jan 31 2016, 09:28
Сообщение #2


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата
То что некоторые называют "говнокодом". Хотя, надо бы банить за применение такого определения.
Т.е. книгу М.Фаулера Рефакторинг вы тоже не рекомендуете? А ведь там как раз вполне серьезно вводится понятне code smells и даже проводится аналогия с детскими пеленками кажется ))))

Нет уж. Говнокод это как раз таки абсолютно обоснованное понятие. И это не то-же самое, что разные стили оформления кода(на что будет влиять упомянутый Visual Studio с Visual Assist). В процессах построения ПО уже все хорошо изучено и изложено. Каталогизировано по степени запаха. И даже с примерами. Реально тот-же Фаулер прямо четко и конкретно указывает какие признаки обладают дурными запахами и что можно сделать и почему это нужно сделать(примеры из разных жизненных ситуаций почему проект потом в это упирается).

Цитата
для работы с периферией используется номер (например номер UART: void usart_set_baudrate (uint32_t usart, uint32_t baud)), а у меня все мои либы используют обычно указатель на хэндл того же UART.
Что, на мой взгляд гораздо прямее, т.к. не нужны никакие if-else по номеру, а сразу usart->sfr.BRR =XX.
Ну тут можно поспорить. С точки зрения принципов сокрытия информации тут как раз лучше подходит абстракция порта до номера, а не предлагать таскать везде этот указатель на структуру(хэндл) порта. Эта структура по идее вообще должна как можно реже всплывать и находиться в кишках HALа ибо есть ни что иное как способ представления порта внутри HALa. Наружу выводится интерфейс. Просто Си не позволяет сделать это естественным образом и часто таки заставляет программиста таскать с собой хэндл, но это уже другая история... Но если хэндл пользователю либы не виден и ввели номер - это архитектурно правильное решение я считаю!

Цитата
if-else по номеру, а сразу usart->sfr.BRR =XX.
опять же классики учат вначале строить систему максимально правильно(сюда входит и принцип сокрытия информации) а после профилирования устранить узкие места. Если например в коде будет встречаться какой-нибудь uart_send(uint32_t usart, char* string); и эта функция будет дергаться так часто, что упомянутый if-else реально начнет влиять на производительность то например можно будет его упразднить путем добавления функции usart1_send(char* string); где будет прямое обращение к хэндлу порта. Однако же я сомневаюсь что до этого дойдет в данном случае(ибо usart медленный).


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   как писать на С в 2016 году   Jan 25 2016, 15:06
- - EvilWrecker   А где тут интересные моменты? Всегда считал данный...   Jan 25 2016, 15:25
|- - alexunder   Цитата(EvilWrecker @ Jan 25 2016, 16:25) ...   Jan 26 2016, 22:12
|- - TSerg   Цитата(alexunder @ Jan 27 2016, 01:12) но...   Jan 26 2016, 22:14
- - Эдди   Быдлохабра сейчас еще хуже стала, потому что интер...   Jan 25 2016, 15:35
- - AlexandrY   Цитата(Jenya7 @ Jan 25 2016, 17:06) прочи...   Jan 25 2016, 15:41
- - Jenya7   ну лично для меня много интересных моментов котор...   Jan 25 2016, 15:42
|- - zltigo   QUOTE (Jenya7 @ Jan 25 2016, 17:42) мелоч...   Jan 25 2016, 15:55
- - Эдди   Jenya7, не надо на этот бред внимания обращать, по...   Jan 25 2016, 15:53
- - EvilWrecker   ЦитатаБыдлохабра сейчас еще хуже стала, потому что...   Jan 25 2016, 15:54
- - Сергей Борщ   Вот если совсем коротко - в 2016 году надо писать ...   Jan 25 2016, 16:17
|- - zltigo   QUOTE (Сергей Борщ @ Jan 25 2016, 18:14) ...   Jan 25 2016, 16:17
|- - Сергей Борщ   Цитата(zltigo @ Jan 25 2016, 18:17) Локал...   Jan 25 2016, 16:22
|- - zltigo   QUOTE (Сергей Борщ @ Jan 25 2016, 18:22) ...   Jan 25 2016, 17:01
- - smalcom   Цитатапрочитал интересную статью. решил поделиться...   Jan 25 2016, 16:18
- - krux   пожалуйста, не надо такого. особенно в разделе для...   Jan 25 2016, 17:10
|- - zltigo   QUOTE (krux @ Jan 25 2016, 19:10) не надо...   Jan 25 2016, 18:16
|- - krux   Цитата(zltigo @ Jan 25 2016, 21:16) Вы не...   Jan 25 2016, 18:58
- - ViKo   Ну, одну пользу я уже извлек - char нужно произнос...   Jan 25 2016, 18:31
|- - Сергей Борщ   Цитата(ViKo @ Jan 25 2016, 20:31) void pr...   Jan 25 2016, 19:59
- - Hexel   господа программисты, прокомментируйте пожалуста в...   Jan 25 2016, 20:26
|- - Dog Pawlowa   Цитата(Hexel @ Jan 25 2016, 23:26) проком...   Jan 26 2016, 07:01
|- - Сергей Борщ   Цитата(Hexel @ Jan 25 2016, 22:26) проком...   Jan 26 2016, 08:36
|- - Dog Pawlowa   Цитата(Сергей Борщ @ Jan 26 2016, 11:36) ...   Jan 26 2016, 09:45
||- - AlexandrY   Цитата(Dog Pawlowa @ Jan 26 2016, 11:45) ...   Jan 26 2016, 10:04
|- - zltigo   QUOTE (Сергей Борщ @ Jan 26 2016, 10:36) ...   Jan 26 2016, 10:04
- - smalcom   ЦитатаNULL vs Nil nullptr ) Цитатакогда носители ...   Jan 26 2016, 13:35
- - Ga_ry   Статью разбили в пух и прах. Так как все таки писа...   Jan 26 2016, 13:59
- - smalcom   ЦитатаТак как все таки писать на си в 2016, у кого...   Jan 26 2016, 14:58
- - Quasar   Какая-то обезьянская статья, ошибками называются в...   Jan 26 2016, 17:22
- - nill   Цитата(zltigo @ Jan 26 2016, 16:04) Прили...   Jan 27 2016, 05:07
|- - zltigo   QUOTE (nill @ Jan 27 2016, 07:07) zltigo,...   Jan 27 2016, 15:07
- - Herz   Господа! К сожалению, ветка уклонилась в обсуж...   Jan 28 2016, 21:18
|- - adnega   Цитата(Herz @ Jan 29 2016, 00:18) Давайте...   Jan 29 2016, 06:23
- - ViKo   Изучая исходники с github, заметил, что в качестве...   Jan 29 2016, 07:17
- - smalcom   Приведите пример, пжл. Как помне, то это не очень ...   Jan 29 2016, 08:12
- - ViKo   http://libopencm3.github.io/docs/latest/us...550c1...   Jan 29 2016, 08:15
- - sigmaN   Цитата(ViKo @ Jan 29 2016, 10:17) Изучая ...   Jan 29 2016, 18:41
|- - ViKo   Цитата(sigmaN @ Jan 29 2016, 21:41) Кажет...   Jan 29 2016, 18:54
|- - demiurg_spb   Цитата(ViKo @ Jan 29 2016, 21:54) libopen...   Jan 30 2016, 19:29
- - sigmaN   Просто по вашему описанию и у меня и у smalcom, ка...   Jan 29 2016, 19:06
- - syoma   Не знаю на счет веб дизайна и компьютерщиков, но п...   Jan 29 2016, 20:03
|- - AlexandrY   Цитата(syoma @ Jan 29 2016, 22:03) И подх...   Jan 30 2016, 20:38
|- - zltigo   QUOTE (AlexandrY @ Jan 30 2016, 22:38) Ко...   Jan 31 2016, 11:16
- - sigmaN   Ну тоже, извините меня, глупо следовать жестким ст...   Jan 29 2016, 21:29
- - smalcom   Цитатаописывается какой-то "говнокод-подход...   Jan 29 2016, 22:12
|- - AlexandrY   Цитата(sigmaN @ Jan 31 2016, 11:28) Т.е. ...   Jan 31 2016, 11:36
|- - zltigo   QUOTE (AlexandrY @ Jan 31 2016, 13:36) Да...   Jan 31 2016, 11:53
- - sigmaN   ЦитатаУказатель на стуктуру более, чем достойный у...   Jan 31 2016, 12:56
|- - zltigo   QUOTE (sigmaN @ Jan 31 2016, 14:56) А я г...   Jan 31 2016, 13:33
- - sigmaN   ЦитатаАга. Можно постараться и нагородить говнокод...   Jan 31 2016, 13:44
|- - zltigo   QUOTE (sigmaN @ Jan 31 2016, 15:44) Нет, ...   Jan 31 2016, 13:55
- - sigmaN   ЦитатаУ меня лет 20 уже тому назад в одной моей си...   Jan 31 2016, 14:29
- - zltigo   QUOTE (sigmaN @ Jan 31 2016, 16:29) так ч...   Jan 31 2016, 16:57


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 19:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01427 секунд с 7
ELECTRONIX ©2004-2016