Forum: Mikrocontroller und Digitale Elektronik Suche einen Namen für Funktion


von Martin (Gast)


Lesenswert?

Hallo,

Für ein kleines µC-Projekt suche ich einen guten Namen für eine 
Funktion.

Aus einer gemessenen (Licht-)Intensität I soll eine Masse M 
prognostiziert werden (dursichtiger Behälter wird mit dunkler 
Flüssigkeit gefüllt, Kamera misst Intensität). Dazu gibt es eine aus 
Erfahrungswerten "gefittete" Funktion f: M = f(I).

Ich suche nun einen guten Namen für diese Funktion (meinetwegen auch 
englisch).
Ich habe erst an "Transfer-", "conversion-" oder "Übertragungsfunktion" 
gedacht, aber das hört sich alles falsch an.

Über Ideen bin ich sehr dankbar.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Transmissionsfunktion

von Nikolai H. (Gast)


Lesenswert?

light_to_weight();

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

intensity_to_mass

GetMassFromIntensity


... je nachdem, ob man Unter_striche oder CamelCase mehr mag.

von Reinhard #. (gruebler)


Lesenswert?

Martin schrieb:
> Ich suche nun einen guten Namen

Ich war immer der Meinung, gute
Programmierer müssten kreativ sein.

von Ordner (Gast)


Lesenswert?

Martin schrieb:
> Dazu gibt es eine aus
> Erfahrungswerten "gefittete" Funktion f: M = f(I).

estimated_mass();

von Falk B. (falk)


Lesenswert?

Wenn man's klassisch ala K&R C-Style machen will

i2m();

;-)

von Der Andere (Gast)


Lesenswert?

Falk B. schrieb:
> i2m();

YMMD

Mal im Ernst, ein SW Entwickler fragt in einem Forum nach einem 
Funktionsnamen an?
Und ihr nehmt diese Anfrage ernst?

Macht mal ne Rechnung auf: Wie viele Funktionen schreibt er 
durchschnittlich pro Tag?
Wird er jetzt alle halbe Stunde den nächsten Namen erfragen?

Kopfschüttel

von Toni Tester (Gast)


Lesenswert?

Reinhard #. schrieb:
> Ich war immer der Meinung, gute
> Programmierer müssten kreativ sein.

Der TO hatte jedoch weder behauptet noch impliziert, gut zu sein - 
daraus vermag nun jeder selbst seine Schlüsse zu ziehen ;-)

On topic:

Falk B. schrieb:
> Wenn man's klassisch ala K&R C-Style machen will
>
> i2m();

Ich hätte eher itom() vorgeschlagen...

von Ralf L. (ladesystemtech)


Lesenswert?

Lumineszenzdichteanalyse

von Helmut L. (helmi1)


Lesenswert?

Wenn man fuer die NSA programmiert nimmt man nichtssagende Namen wie 
Suzi oder Hugo. :=)

von Rainer V. (rudi994)


Lesenswert?

Martin schrieb:
> Aus einer gemessenen (Licht-)Intensität I soll eine Masse M
> prognostiziert werden (dursichtiger Behälter wird mit dunkler
> Flüssigkeit gefüllt, Kamera misst Intensität).

Bei der quantitativen Analyse im Chemielabor wird ein vergleichbares 
Verfahren als "Messung der Extinktion" bezeichnet. Vllt. gibt es hier 
noch eine Idee für einen guten Funktionsnamen:

Extinktion (Optik):
https://de.wikipedia.org/wiki/Extinktion_(Optik)

Messprinzip in der Absorbtionsspektrometrie:
http://www.uni-bielefeld.de/chemie/lehre/basispc/media/Spektrometer/

: Bearbeitet durch User
von SoftwareArchitekt (Gast)


Lesenswert?

>Wenn man's klassisch ala K&R C-Style machen will
>i2m();

Ja, so hat man das vor 40 Jahren gemacht. Heute macht man es anders.

In diesem Buch gibt es die Analyse eines Softwareprogrammieres mit der 
er herauszufinden versucht, was er am meisten am Computer macht.

https://www.oreilly.de/buecher/120174/9783897215672-weniger-schlecht-programmieren.html

Das Ergebnis:

Rauf und runter scrollen und Code lesen.

Die Schlussfolgerung:

Code muss lesbar sein wie ein Buch. Deshalb ist das Refactoring ganz 
wichtig, mit dem man die Lesbarkeit ständig verbessert.

Kommentare: sind verboten. Der Code muss selberklärend sein.

schlechte Beispiele:

i2m(x); // wandelt eine Lichtintesität in eine Masse um

ledOn(); // schaltet die Leutdiode ein

reset(); // macht einen Reset

wait(); // wartet

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

SoftwareArchitekt schrieb:
> Kommentare: sind verboten. Der Code muss selberklärend sein.

Hust.

von Falk B. (falk)


Lesenswert?

@Rufus Τ. Firefly (rufus) (Moderator)

>SoftwareArchitekt schrieb:
>> Kommentare: sind verboten. Der Code muss selberklärend sein.

>Hust.

Dogmen waren schon immer Mist ;-)

von Bernd K. (prof7bit)


Lesenswert?

SoftwareArchitekt schrieb:
> Kommentare: sind verboten. Der Code muss selberklärend sein.

Das ist zu allgemein formuliert. Kommentare die beschreiben was der 
code macht sollten durchaus verboten sein, immerhin steht ja schon in 
Form von ausführbarem Code schwarz auf weiß dort was er macht.

Jedoch sollte man schon hier und da mal erklären warum man was macht 
(wenns nicht gerade offensichtlich ist), oder warum gerade so und nicht 
anders, oder in ein paar knappen Sätzen (in nem Block der sich schön von 
Doxygen extrahieren lässt) grob zusammenfassen was denn überhaupt 
erreicht werden soll.

: Bearbeitet durch User
von SoftwareArchitekt (Gast)


Lesenswert?

1
void checkForCommentProportion( uin32_t linesOfCode, uint32_t linesOfComments )
2
{
3
  if( ( (float) linesOfComments / linesOfCode ) >0.01 )
4
  {
5
    informCoder(" please reduce the number of comment lines ");
6
    informCoder(" due to high risk of code function and comment mismatch ");
7
    informCoder(" refactor your code for better readability ");
8
  }
9
}

von Ordner (Gast)


Lesenswert?

SoftwareArchitekt schrieb:
> Kommentare: sind verboten. Der Code muss selberklärend sein.

Ok, dann nenn die function

emacs();  //Eats Memory And Corrupts System


oder

fullofbugs();


Aber das wäre nicht nur selbsterklärend sondern auch ehrlich - wer kann 
das schon aushalten ;-)

von MagIO2 (Gast)


Lesenswert?

Also wenn das so schwierig ist mit den Namen, dann empfehle ich den 
Rückschritt zu einem BASIC mit Zeilennummern und gosub.

von Ratgeber (Gast)


Lesenswert?

MagIO2 schrieb:
> Also wenn das so schwierig ist mit den Namen, dann empfehle ich den
> Rückschritt zu einem BASIC mit Zeilennummern und gosub.

Genau so! Das erfüllt dann auch gleich diese Bedingung:

SoftwareArchitekt schrieb:
> Code muss lesbar sein wie ein Buch.

Rufus Τ. F. schrieb:
> Hust.

Dagegen gibt es doch bestimmt Etwas von Ratiopharm...
:)

von c-hater (Gast)


Lesenswert?

SoftwareArchitekt schrieb:

> Kommentare: sind verboten. Der Code muss selberklärend sein.

In den meisten Fällen sehe ich das auch so. Allerdings gibt es durchaus 
Ausnahmen von dieser Regel. Beispiele:

Ich kommentiere grundsätzlich sehr ausführlich alle Workarounds um den 
Müll, den andere verzapft haben und der sich von mir nicht oder nur mit 
sehr hohem Aufwand wirklich beheben liesse.

Auch alles, was in sich bekannt unlogisch ist, aber worauf der Kunde 
einfach mal unbeirrbar wider jede Vernunft bestanden hat.
Das erleichtert es dann, wenn der Kunde nach einem viertel oder halben 
Jahr (wie zu erwarten) mit der Forderung nach einer kostenlosen 
Nachbesserung angeschissen kommt, den Schaden zu beheben. Man muss sich 
dann nicht wieder neu in das Thema reindenken.
Natürlich kriegt der Kunde die Nachbesserung trotzdem nicht kostenlos, 
denn ausser dem Kommentar im Quelltext sorgt man natürlich auch dafür, 
dass die Beratung für eine logisch konsistente Lösung und deren 
Ablehnung durch den Kunden aktenkundig ist. So generiert man leicht 
verdientes Geld, was sich obendrein praktisch fast fest einplanen 
läßt...

Auch Shortcuts kommentiere ich ausführlich. Also Sachen, wo man unter 
Ausnutzung bestimmter Randbedingungen wesentlich effizienteren/kürzeren 
Code schreiben kann, als normalerweise an dieser Stelle anfallen würde. 
Das ist sehr hilfreich, wenn bei späteren Erweiterungen des Codes diese 
Randbedingungen plötzlich teilweise oder gar ganz wegfallen...

Wenn ich noch eine Weile nachdenke, fallen mir wahrscheinlich noch 
einige weitere Sachen ein, wo man Kommentare durchaus benutzen sollte.

Fakt ist jedenfalls: die stupiden halbautomatischen Kommentare, die 
heutzutage en vogue sind und aus denen dann vollautomatisch eine 
angeblich hinreichende Dokumentation generiert werden können soll, sind 
meistens völlig nutzlos, genauso wie die daraus generierte 
"Dokumentation". Das ist völliger Bullshit. Was dokumentiert werden 
muss, ist das Konzept, was hinter dem Code steht. Der Rest steht im Code 
selber und muss nicht nochmal in Prosa ausgedrückt werden.

von Tobias P. (hubertus)


Lesenswert?

ich schlage

fittedLightIntensityToMassConversionFunction

vor.

von Jobst M. (jobstens-de)


Lesenswert?

Licht_zu_Masse_Converter()

oder

Emc²()

**duckundweg*


Gruß
Jobst

von Alexander T. (Firma: Arge f. t. abgeh. Technologie) (atat)


Lesenswert?

SoftwareArchitekt schrieb:

> Kommentare: sind verboten. Der Code muss selberklärend sein.

Ganz streng gehört verboten, die Argumente zu spezifizieren: Ist die 
Zeit in Clockticks, in µs oder in jiffies anzugeben? Ist das Ergebnis in 
mg oder lbs?

Besonders wichtig finde ich auch, häufige Funktionen oder Methoden 
möglichst langatmig zu benennenn:

  fopen() -> Böse
  OpenFileOrPipeInStdioStyleReturningFILEPointerOrNull() -> 
Übersichtlich!

Dann wird es auch zeit, diese unlesbar kryptischen Operatoren endlich 
DeutLichLesbar hinzumalen:

  LET TargetVariable BeEqual 32 AddIntegers 4 Subtract 2 DivideBy 3 
SemiColon

COBOL hat das ja schon mal recht gut vorgemacht. COBOL-Programmierer 
haben einen sicheren Job.

von SoftwareArchitekt (Gast)


Lesenswert?

1
 double calculateMass_Kg( double intensity_w_per_qm );

oder das Beispiel von Frank ( i2m ) ausgeschrieben:
1
 double intensityToMass_Kg( double intensity_W_per_Steradiant )

von Urmel (Gast)


Lesenswert?

Die beiden großen Probleme der Informatik: Cache-Ungültigkeitserklärung 
und Namen finden.

https://martinfowler.com/bliki/TwoHardThings.html

von honk (Gast)


Lesenswert?

Martin schrieb:
> Erfahrungswerten "gefittete" Funktion f: M = f(I).
>
> Ich suche nun einen guten Namen für diese Funktion (meinetwegen auch
> englisch).

"gefittete" und dann unschlüssig über die Sprache?

von Yalu X. (yalu) (Moderator)


Lesenswert?

SoftwareArchitekt schrieb:
> 
https://www.oreilly.de/buecher/120174/9783897215672-weniger-schlecht-programmieren.html

Hast du das Buch gelesen?

Ich auch nicht. Aber ich habe mir wenigstens das Inhaltsverzeichnis
angeschaut. Das Kapitel "Kommentare" umfasst immerhin 14 Seiten, was
darauf hindeutet, dass das Thema etwas komplexer ist als du es hier
darstellst:

> Kommentare: sind verboten.

:)

von Bernd K. (prof7bit)


Lesenswert?

Alexander T. schrieb:
> Ganz streng gehört verboten, die Argumente zu spezifizieren: Ist die
> Zeit in Clockticks, in µs oder in jiffies anzugeben? Ist das Ergebnis in
> mg oder lbs?

Das wäre eigentlich ein prima Anwendungsgebiet für ein starkes 
Typsystem, dann könnte man das zur Compilezeit erzwingen, bräuchte es 
nicht zu dokumentieren und es würden weniger Raumsonden in Planeten 
krachen.

von HilfreicheTipps (Gast)


Lesenswert?

Martin schrieb:
> Für ein kleines µC-Projekt suche ich einen guten Namen für eine
> Funktion.

Hmm.

wie wärs mit:
double Herbert(double Bernd);

von Daniel F. (df311)


Lesenswert?

Urmel schrieb:
> Die beiden großen Probleme der Informatik: Cache-Ungültigkeitserklärung
> und Namen finden.
>
> https://martinfowler.com/bliki/TwoHardThings.html

da fehlen noch die "off-by-one" Fehler ;-)

von BesterProgrammiererVonWelt (Gast)


Lesenswert?

Sieh es mathematisch. Es ist eine Funktion. Nenne sie f. Gibt es im 
aktuellen Kontext bereits eine Funktion namens f, hänge einen 
nullbasierten Zähler auf Zahlenbasis deiner Wahl (möglichst nicht 2, 8, 
10 oder 16) an und zähle so lange hoch, bis der Name eindeutig wird.

Herzlichen Glückwunsch, Du hast Deinen Funktionsnamen gefunden.

Is doch echt nicht so schwer, oder?

von Bernd T. (bastelmensch)


Lesenswert?

Ich würde die Funktion einfach "Lichtmassendings" nennen... :-)

Kommentare sind wichtig, vor allem wenn mal wieder ein total genialer 
Gedanke verwirklicht wird der so irre Genial war das man ihn ein viertel 
Jahr selber erst nach 2h analyse wieder durchschaut...

von Clemens W. (daxmus)


Lesenswert?

Und noch viel irre genialer sind die Gedanken, bei denen man nach 2h 
Analyse denkt, es gäbe eine viel einfachere Lösung. Die einfache Lösung 
1d lang implementiert und am Ende feststellt, dass sie genauso 
umfangreich, wie die ursprüngliche Lösung geworden ist ;)

Von daher: Sinnvolle Kommentare sind absolut nichts Böses und sogar 
erstrebenswert.

von Der Andere (Gast)


Lesenswert?

In der idealen Welt der Lehrbücher wie z.B. CleanCode ist das alles ganz 
einfach. Da ist jede Zeile Code selbsterklärend und selbst ein 
Dreizeiler wird schon als zu komplex definiert, den man doch bitte in 
mehrere Funktionen unterteilen soll.
In der Realität sieht die Sache leider nicht immer so einfach wie bei 
den Trivialbeispielen in den Lehrbüchern aus, insofern (und weil man in 
der Realität einen Termin hat und nicht noch 10 Runden Refactoring 
einlegen kann) helfen Kommentare sich zu erinnern WARUM man etwas genau 
so programmiert hat.

Während jetzt die Verfechter der reinen Lehre noch so lang weiter 
laborieren, bis die Geschäftsleitung mangels Erfolg den Geschäftsbereich 
einstampfen, haben wir mit der nichtidealen aber zufriedenstellend 
performant und fehlerfrei laufenen Software dann schon ein Dutzend 
Kunden.


Jobst M. schrieb:
> Emc²()

Das war der beste :-)

von Eric B. (beric)


Lesenswert?

SoftwareArchitekt schrieb:
>
1
> 
2
> void checkForCommentProportion( uin32_t linesOfCode, uint32_t  linesOfComments )
3
> {
4
>   if( ( (float) linesOfComments / linesOfCode ) >0.01 )
5
>   {
6
>     informCoder(" please reduce the number of comment lines ");
7
>     informCoder(" due to high risk of code function and comment mismatch 
8
> ");
9
>     informCoder(" refactor your code for better readability ");
10
>   }
11
> }
12
> 
13
>

Division by zero error in line 3.

von Roflmops (Gast)


Lesenswert?

Mist. Wie kriege ich jetzt den Kaffe vom Monitor? :)

von AS7 (Gast)


Lesenswert?

Die Suche nach eine vernünftigen Funktionsname ist in der Tat selten 
einfach.
Nach Kommentaren zu verlangen ist eigentlich ein ganz anderes Thema.

Schlechte Programmierer hadern nicht so lange an den Funktionsnamen, 
gute schon eher, da diese wissen das Quelltext auch von Menschen gut 
lesbar sein muss.

von Der Andere (Gast)


Lesenswert?

AS7 schrieb:
> Schlechte Programmierer hadern nicht so lange an den Funktionsnamen,
> gute schon eher, da diese wissen das Quelltext auch von Menschen gut
> lesbar sein muss.

Wenn er seit Gestern 14:53 immer noch an dem Namen einer Funktion hängt, 
dann sollte er den Beruf wechseln.

von Jobst M. (jobstens-de)


Lesenswert?

Roflmops schrieb:
> Wie kriege ich jetzt den Kaffe vom Monitor? :)

1. Komplett weißen Inhalt anzeigen.
2. Foto mit ausreichender Auflösung machen.
3. Foto invertieren.
4. Pixelgenaue Gammakorrektur durchführen.


Gruß
Jobst

von Wolfgang (Gast)


Lesenswert?

AS7 schrieb:
> Die Suche nach eine vernünftigen Funktionsname ist in der Tat selten
> einfach.

Für Unbeteiligte, die die Namenskonvention im Programm nicht kennen, ist 
es noch viel schwieriger.

von SoftwareArchitekt (Gast)


Lesenswert?

>SoftwareArchitekt schrieb:
>>
>>
1
>> void checkForCommentProportion( uin32_t linesOfCode, uint32_t  linesOfComments )
2
>> {
3
>>   if( ( (float) linesOfComments / linesOfCode ) >0.01 )
4
>>   {
5
>>     informCoder(" please reduce the number of comment lines ");
6
>>     informCoder(" due to high risk of code function and comment mismatch 
7
>> ");
8
>>     informCoder(" refactor your code for better readability ");
9
>>   }
10
>> }
>>
>>
Autor: Eric B. (beric)
>Division by zero error in line 3.

Danke.
Das zeigt, wie gut Code ohne Kommentare lesbar sein kann und gleich 
verstanden wird :-)

von Jobst M. (jobstens-de)


Lesenswert?

SoftwareArchitekt schrieb:
> Danke.
> Das zeigt, wie gut Code ohne Kommentare lesbar sein kann und gleich
> verstanden wird :-)

Ist ja auch sehr komplex ...

10 PRINT "HALLO"
20 GOTO 10

benötigt auch keine Kommentare ...


Gruß
Jobst

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.