Re: Názvy proměnných

Pavel Hudeček edizon na seznam.cz
Sobota Duben 13 04:58:47 CEST 2024


Ano, zakládat projekt pokud možno jako C++ je dobrý začátek.
Ničemu to nevadí a když je potřeba, tak se tím dost věcí usnadní. Když 
ne rovnou třídy a objekty, tak aspoň přetěžování funkcí, nebo použití 
static_cast.
Škoda že třeba gcc avr má problémy se šablonama, to je ještě lepší 
usnadnění než přetížení (nevím jak jinde, ale mě zlobil s AVR64DD32).

Ale třeba řídící proměnné foru často zakládám venku (těsně nad), abych 
pak těsně pod zjistil, jestli prošel celej, nebo ne, případně kolik.

PH

Dne 13.04.2024 v 0:08 Slavomir Skopalik napsal(a):
> 1. Vse v kodu anglicky (vcetne komentaru)
>
> 2. Lokalni promene co nejkratsi, a platnost pouze pro nezbytnou cast 
> kodu.
>
> 3. Globalni promenne popisne, ale neprehanet
>
> 4. Globalni promenne az na vyjimky jako struktury
>
> 5. Pokud to kompiler umi, tak c++ (a klidne psat jak v c)
>
>   Duvody:
>
>   struktury mohou mit metody, auto, tridy
>
>
> Takze klidne:
>
> for(int i=0; i<4; i++){
>
> }
>
> a hned potom znovu
>
> for(int i=0; i<4; i++){
>
> }
>
> To ze i plati vzdy jen pro telo cyklu zajistuje, ze nebude nikde 
> omylem pouzito.
>
> Dalsi vyhodou je "izolace" kodu, pokud je nekam zkopirujete, tak sebou 
> nese vse nezbytne.
>
>
> Pri psani pro ARM hodne vyuzivam inline.
>
> Ukazka spolecneho predka pro vsechny RS komunikace (NXP ARM MCU):
>
> class UART_t{
> protected:
>     unsigned long LastRxTime;
> public:
>     int     Transactions;                            // How many Rx 
> transactions from system start
>     int        CRCFails  = 0;                            // CRC RX fails
>     int        RxOverRun = 0;
>     LPUART_Type * BaseAddr = NULL;
>     short     Port = 0;
>     bool    Enabled;
>     bool     Logging = false;
>     bool    SingleWireMode;                            // Set LPUART 
> into single wire mode (
>     bool    RTSEnable;                                // Enable RTS
>     bool    RTSPolarityInversion;                    // invert RTS 
> polarity
>     // Methods
>     void Open(short APort, int a_CLK, unsigned int BaudRate);
>     void Close();
>     void BlockedSend(char c);            // Try send char, if buffer 
> is full than wait for empty
>     void Purge();                        // drop input FIFO
>     // inline methods
>     inline bool isTxEmpty(){
>         return BaseAddr->STAT & LPUART_STAT_TDRE_MASK;
>     }
>     inline bool isTransmiting(){
>         return !(BaseAddr->STAT & LPUART_STAT_TC_MASK);
>     }
>     inline void SendChar(char c){
>         BaseAddr->DATA = c;
>     }
>     inline bool ReceiveChar(char* c){
>         uint32_t st = BaseAddr->STAT;
>         if( st & LPUART_STAT_OR_MASK){
>             BaseAddr->STAT = LPUART_STAT_OR_MASK;           // clear 
> Over Run flag Note:While the OR flag is set, no additional data is 
> stored in the data buffer even if sufficient room exists.
>             RxOverRun++;
>         }
>         if( !(st & LPUART_STAT_RDRF_MASK) ) return false;
>         *c = BaseAddr->DATA;
>         LastRxTime = _T0TC;
>         return true;
>     }
>     inline void SetDirection(bool tx_dir){            // Set direction 
> in single wire mode tx_dir = true -> transmitting
>         if(tx_dir)
>             BaseAddr->CTRL |= LPUART_CTRL_TXDIR_MASK;
>         else
>             BaseAddr->CTRL &= ~LPUART_CTRL_TXDIR_MASK;
>     }
> };
>
> Slavek
>
> Ing. Slavomir Skopalik
> Executive Head
> Elekt Labs s.r.o.
> MASA - Collection and evaluation of data from machines and laboratories
> http://eng.elektlabs.com/products-and-services/masa
> -----------------------------------------------------------------
> Address:
> Elekt Labs s.r.o.
> Chaloupky 158
> 783 72 Velky Tynec
> Czech Republic
> ---------------------------------------------------------------
> Mobile: +420 724 207 851
> skype:skopaliks
> e-mail:skopalik na elektlabs.com
> http://www.elektlabs.com
>
> On 12.04.24 09:57, Martin Záruba wrote:
>> Používáte názvy proměnných:
>>
>> 1) v češtině/sloveštině
>>
>> 2) v angličtině
>>
>> 3) úplně jinak
>>
>>
>> Vytváříte názvy tak, aby dávaly smysl:
>>
>> 1) změnaNapětíNaBateriimV
>>
>> 2)dUBat // změna napětí na baterii v mV
>>
>> 3) jinak


Další informace o konferenci Hw-list