Hey Leute!
Jetzt habe auch mal ein Python - Projekt, bei dem es sich lohnt, es vorzustellen
Und zwar habe ich mich an einem Web Browser versucht, Namens "Cobra".
Das ganze habe ich realisiert mit Python 2.7.2 und PyQt 4.8.4 (Qt 4.7.2).
0.5 ist die aktuelle Version.
Bisher sind nur standardfunktionen implementiert, also Tabs, Cache, etc.
Was noch fehlt ist eine unterstützung für Cookies, sowie ein Download Manager.
Außerdem folgen noch Functionen wie: Drucken, Seite speichern, etc.
Das tolle an Cobra ist, dass er portabel ist. Gespeichert werden die
Einstellungen in einer "Settings.ini".
Geht nicht allzu kritisch an das ganze ran, schließlich ist das noch ein relativ
junges Projekt und es fehlen noch ein paar Funktionen
Dennoch sind Lob, Kritik und Tipps erwünscht
Schaut euch Cobra doch mal an!
Hier geht's zur Projektseite auf meiner Homepage: (KLICK)
Cobra Web Browser
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
MainWindows.py, Z81ff: kannst du ersetzen mit
Damit fällt das `if`-Konstrukt weg. Und das sieht ja immer noch ziemlich grausam aus, deswegen könnte man das auch so formulieren:
Vielleicht solltest du die vielen `action_*`-Variablen aber auch einfach durch ein `actions`-Dictionary ersetzen.
SettingsWindow.py, Z63ff: das lässt sich formulieren als
Die Variablen darin sind übrigens totaler Müll. Was heißt bittesehr `cbx`? Und was `stng`? Abkürzungen gehen gar nicht. Ich muss anhand des Namens einer Variable wissen, was sie speichert, ohne den Rest des Codes gelesen zu haben. Das geht aber mit solchen Abkürzungen nicht.
Ansonsten mal PEP8 angucken.
Code: Alles auswählen
self.action_OpenFile.setEnabled(self.tabWidget.HasCurrent)
self.action_CloseTab.setEnabled(self.tabWidget.HasCurrent)
# ...
Code: Alles auswählen
for action in {'OpenFile', 'CloseTab', ...}:
getattr(self, 'action_%s' % action).setEnabled(self.tabWidget.hasCurrent)
SettingsWindow.py, Z63ff: das lässt sich formulieren als
Code: Alles auswählen
styles = ['Common', 'Plastique', 'GTK', ...]
self.cbx_uiStyle.setCurrentIndex(styles.index(self.stng_UIStyle)
Ansonsten mal PEP8 angucken.
-
- User
- Beiträge: 26
- Registriert: Freitag 20. August 2010, 19:31
cbx ist meine Abkürzung für CheckBox
stng = Setting
Mir wurde beigebracht, wenn man viele Variablen hat, soll man so
mit Prefixen arbeiten. Und ich möchte nicht immer setting_<name>
schreiben müssen. Auf dauer nervt das, was Variablennnamen angeht,
bin ich schreibfaul
Und danke für deine Tipps, das nehme ich mir zu Herzen und das mit dem
Actions-Dict wäre wirklich gut...
stng = Setting
Mir wurde beigebracht, wenn man viele Variablen hat, soll man so
mit Prefixen arbeiten. Und ich möchte nicht immer setting_<name>
schreiben müssen. Auf dauer nervt das, was Variablennnamen angeht,
bin ich schreibfaul
Und danke für deine Tipps, das nehme ich mir zu Herzen und das mit dem
Actions-Dict wäre wirklich gut...
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Dann hat dir jemand Müll beigebracht. Man sollte niemals an den Punkt gelangen, überhaupt so viele Variablen zu haben, dass es ohne Prefixe unübersichtlich würde -- bzw. wenn es wird weiß man dass Refactoring angesagt ist.
Und nicht immer `settings_` schreiben zu wollen, ist in Zeiten wo selbst einfachere Texteditoren Autovervollständigung anbieten, auch kein besonders zugkräftiges Argument.
Das ist die Ungarische Notation die Charles Simonyi vor langen Jahren bei Microsoft eingeführt hat (schau dir mal die API von Windows 3.0 an). Eine gewisse Zeit wurde das mit Begeisterung verwendet (lpsz = Long Pointer String Zero-terminated), inzwischen ist aber selbst Microsoft davon wieder abgekommen - und das aus gutem Grund,BLU3L30PARD hat geschrieben:cbx ist meine Abkürzung für CheckBox
[...]
Mir wurde beigebracht, wenn man viele Variablen hat, soll man so
mit Prefixen arbeiten.
@/me: Ursprünglich dachte der Erfinder dieser Notation aber auch an etwas wie "settings_" und nicht an Typpräfixe. Die kamen erst später, und waren vom Erfinder so nicht angedacht.
Zumindest hat er deutlich später mal behauptet, dass er es so wie es verwendet wurde nicht gemeint hat.lunar hat geschrieben:@/me: Ursprünglich dachte der Erfinder dieser Notation aber auch an etwas wie "settings_" und nicht an Typpräfixe.
-
- User
- Beiträge: 16
- Registriert: Sonntag 22. August 2010, 09:06
- Wohnort: Mein Zimmer
- Kontaktdaten:
Ich hab mir deinen WebBrowser mal runtergeladen(ich muss mir erstmal PyQt4 installieren). Ich habe mir die .exe version runtergeladen. Aber wenn ich das Programm starte kommt bei mir eine Fehlermeldung. "Cobra.exe ist keine zulässige Win32 Anwendung". Kann mir vielleicht jemand erklären was das bedeutet und iwe ich das Problem behoben kriege. Im Internet habe ich dazu nichts gefunden.
Vielen Dank
Benito
Vielen Dank
Benito