Define vs. Protected in Prozeduren

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Define vs. Protected in Prozeduren

Beitrag von ts-soft »

Will ich mal meinen Senf auch abgeben, obwohl es sinnvollere Themen gibt :mrgreen:

Ich unterscheide zumindest 2 Arten von Prozeduren, die Codespezifischen und die unabhängigen. Codespezifische Proceduren laufen nur in einem Code und nutzen oftmals auch globale o. ä. Variablen. Codespezifische Proceduren und deren Sinnhaftigkeit der Syntax liegt im Auge des Betrachters, somit ist dort alles erlaubt, was auch die PB-Hilfe erlaubt.

Unabhängige, wiederverwendbare Codes, sind hier ganz anders zu betrachten. Sie sollten möglichst keine globalen Variablen verwenden und möglichst keine CompilerMeldung auslösen, nach einfügen in einem Fremdcode. Solche Proceduren habe ich auch massenhaft unter Code-Bausteine in der IDE. Diese verkürzen mir die Entwicklungszeit ernorm. Bei solchen Codes kann man IMHO nur Protected sinnvoll einsetzen. Inzwischen nutze ich aber auch immer öfter Module, die mir dann z.B. auch modul-globale Variablen erlauben.

yust my two cents
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
NeoChris
Beiträge: 205
Registriert: 21.11.2013 21:17
Wohnort: Schweiz
Kontaktdaten:

Re: Define vs. Protected in Prozeduren

Beitrag von NeoChris »

Meine persönliche Meinung : Ich bin auch für Protected.

>> Unabhängige, wiederverwendbare Codes, sind hier ganz anders zu betrachten.
Sollte man seine Codes nicht grundsätzlich so aufbauen? Sonst klingt das so nach Spaghetti Code wenn irgendwas ziellos zusammengeschustert wird hauptsache es funktioniert und so. Verdammt jetzt habe ich Hunger bekommen... :lol:

yust my two cents too :D ach scheiss drauf ich leg da ten cents drauf. :D
Benutzeravatar
mhs
Beiträge: 224
Registriert: 11.01.2009 16:30
Wohnort: Graben
Kontaktdaten:

Re: Define vs. Protected in Prozeduren

Beitrag von mhs »

diceman hat geschrieben:Tut mir auch Leid, daß das so ausgeartet ist. :( ...
Du brauchst dich nicht entschuldigen diceman, alles Bestens :)
ts-soft hat geschrieben:... Unabhängige, wiederverwendbare Codes, sind hier ganz anders zu betrachten. Sie sollten möglichst keine globalen Variablen verwenden und möglichst keine CompilerMeldung auslösen, nach einfügen in einem Fremdcode. Solche Proceduren habe ich auch massenhaft unter Code-Bausteine in der IDE. Diese verkürzen mir die Entwicklungszeit ernorm. Bei solchen Codes kann man IMHO nur Protected sinnvoll einsetzen. Inzwischen nutze ich aber auch immer öfter Module, die mir dann z.B. auch modul-globale Variablen erlauben. ...
Module sind da wohl das beste Mittel für Wiederverwendbarkeit in anderen Projekten. Dort ist dann alles gekapselt, u.U. auch mit "privaten" Hilfsfunktionen, etc. Die lassen sich prima in einer separten .pb/.pbi Datei unterbringen und so in jedes Projekt inkludieren. Copy&Paste über Projekte hinweg ist meist eh mit Anpassungen verbunden und wenn alles schön gekapselt ist kann eigentlich nichts mehr schief gehen.
Michael Hack

Michael Hack Software :: Softwareentwicklung | Webentwicklung | IT-Dienstleistungen
www.michaelhacksoftware.de :: www.mh-s.de :: www.michael-hack.de
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Define vs. Protected in Prozeduren

Beitrag von RSBasic »

Um den Thread abzuschließen, hier die Antwort von freak:
freak hat geschrieben:Hallo Ray,

da gibt es kein richtig und falsch. Ist eine Frage der Vorliebe was man besser findet falls es eine globale und lokale Variable mit gleichem Namen gibt.
  • Protected sorgt für bessere Wiederverwendbarkeit (keine Konflikte)
  • Define verringert die Verwechslungsgefahr (keine doppelt belegten Namen erlaubt)
Für Code den man öffentlich macht ist es sinnvoll Protected zu verwenden, da man damit niemand zwingt evtl. seine Globalen Variablen umzubenennen nur um den Code zu benutzen. Für den eigenen Code kann man das aber halten wie man will.
Dann nehme ich natürlich alles zurück, was ich gesagt habe, dass Define in Prozeduren nicht erlaubt sei. Ich dachte, es wäre so, weil ich solche strengen Regeln in anderen Programmiersprachen so kenne und weil ich sowohl in der Hilfe als auch hier in Foren immer Protected sah.
Sorry für die Diskussion.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
diceman
Beiträge: 347
Registriert: 06.07.2017 12:24
Kontaktdaten:

Re: Define vs. Protected in Prozeduren

Beitrag von diceman »

Und ich werde in Zukunft bei Snippets, die ich hier im Forum poste, immer Protected verwenden.
War trotzdem eine konstruktive Diskussion, würde ich sagen; hätte mich sonst nicht so damit auseinandergesetzt.
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.
Antworten