|
как писать на С в 2016 году |
|
|
|
 |
Ответов
|
Jan 29 2016, 20:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Не знаю на счет веб дизайна и компьютерщиков, но помоему самые святые постулаты о том, как правильно писать на ембеддерном Си, пишет NASA в своих гайдлайнах и стандартах. Например http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf и аналогичные. И подходят они и к Си1980 и к Си2016. Так как написаны почти кровью, а точнее предназначены для написания критически важного для миссий софта. Как по мне маст ноу каждого начинающего ембеддерного программиста. К ним еще MISRA-C:2004 можно добавить.
|
|
|
|
|
Jan 30 2016, 20:38
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(syoma @ Jan 29 2016, 22:03)  И подходят они и к Си1980 и к Си2016. О тут бы не согласился. Стиль языков это отражение свойств редакторов, библиотек и средств разработки этих языков. Очевидно же что пишущий в Notepad (что в прошлом и было) будет пропагандировать совсем другой стиль чем пишущий в Visual Studio с установленным Visual Assist. Совершенствуются средства разработки и соответственно меняется стиль. Причем в корне. Насчёт той же MISRA заморачиваться можно только если все пишете сами с нуля. Чуть сторонняя библиотека и можете MISRA отключать. С другой стороны есть такие статические анализаторы как С-STAT у IAR. Крутейшая вещь. Никакой MISRA не надо. Это тоже отправляет добрую часть старых рекомендаций в топку. С-STAT всё сам найдет и укажет что исправить. Короче в 2016 будет продолжаться ослабление требований к стилям и усиливаться индивидуализация кодирования. То что некоторые называют "говнокодом". Хотя, надо бы банить за применение такого определения.
|
|
|
|
|
Jan 31 2016, 11:16
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (AlexandrY @ Jan 30 2016, 22:38)  Короче в 2016 будет продолжаться ослабление требований к стилям и усиливаться индивидуализация кодирования. То что некоторые называют "говнокодом". Хотя, надо бы банить за применение такого определения. "Говнокодирование" и "индивидуальный стиль кодирования" это две абсолютно разные вещи. Одна другую не отменяет и не заменяет. Попытки прикрыть говнокодирование разговорами за "индивидуальный стиль" я бы назвал первейшим признаком говнокодера. QUOTE (sigmaN @ Jan 31 2016, 11:28)  Ну тут можно поспорить. С точки зрения принципов сокрытия информации тут как раз лучше подходит абстракция порта до номера, а не предлагать таскать везде этот указатель на структуру(хэндл) порта. Указатель на стуктуру более, чем достойный уровень абстракции и хорош, как минимум тем, что должен быть получен в процессе инициализации системы и будет иметь свое имя. Номер-же порта эта не абстракция а муть бесфоменная - вызов какой-либо функции с номером порта '9' не говорит ни очем. При этом еще в функции придется каждый раз разбираться есть-ли за этой абстракной цифрой что-то реальное бегая по каким-то дополнительно созданным стуктурам. QUOTE Эта структура по идее вообще должна как можно реже всплывать.... Всплывать или не всплывать это уже дело второе и не зависит от того, как выгдядит обращение к этой структкре. Но если используется номер порта, то добраться до любого эдемента стукруры можно только через пересчет номера порта в адрес этой же структкры. Лишние телодвижения, тогда когда в случае "хендла" доступ к, напимер, посмотреть на какой нибудь флаг статуса может быть вообще макросом разворачивающися в одну команду. "Номер порта" абсолютно ненужный ЛИШНИЙ уровень абстракции в подавляющем большинстве случаев. Хотя опять-же какой к черту номер порта это уровень абстракции? Никакая это не абстракция - это антиабстакция, ибо когда Вы о нем говорите над Вами довлеет абсолютно ральный физический порт UART. А вот "хэндл" есть самая, что ни на есть абстракция - за ним уже может с неменьшим успехом стоять и гигабитный эзернет в качестве физического уровня.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
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 sigmaN Ну тоже, извините меня, глупо следовать жестким ст... Jan 29 2016, 21:29 smalcom Цитатаописывается какой-то "говнокод-подход... Jan 29 2016, 22:12 sigmaN ЦитатаТо что некоторые называют "говнокодом... Jan 31 2016, 09:28 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|