Python i zaawansowane aplikacje (www i pc)

Pytanie głównie do Pythonowców.

Jak wygląda Python w roli platformy do poważnych aplikacji www i pc.

Mam na myśli aplikacji typu CRM, klient poczty, manager plików, soft finansowy. Takie których realizacja trwa powiedzmy pół roku do kilku lat.

Czy w takich sytuacjach Python się sprawdza?

Domyślam się że dla www najlepszym wyjściem jest Django i to rozwiązanie sprosta sporym systemom. Ale dla aplikacji PC, powiedzmy że oparte o PyQT już nie jestem pewien.

Chodzi mi o kwestie: - wydajności - bezpieczeństwa kodu źródłowego (zeby nie było widać źródeł) - utrzymania i konserwacji programu

Póki co większość softu na PC powstaje w C/C++, C# lub JavaSE. Osobiście używam kilku programów PC napisanych w Pythonie ale to raczej narzędzia niż duże projekty.

Jakie są wasze doświadczenia?

Jak ktoś ma ciekawy link do większego projektu w Pythonie (zwłaszcza na PC) to niech się podzieli.

1 rok, 12 miesięcy temu | edytowane przez: qaz 7325

  • Ja pracując w firmie gdzie robiliśmy systemy obsługi baz danych (Desktop) zauważyłem taktykę kompilowania aplikacji w py2exe. Wydajność była tego całkiem niezła, no i brak dostępu do kodu. Generalnie jak już wspominali koledzy wyżej, dokumentacja i przyjęcie pewnych reguł budowy aplikacji to podstawa inaczej zgubisz się w kodzie. Jeżeli piszę się w grupie należy również określić wspólne zasady dla komentarzy , nazewnictwa zmiennych no i wielu innych elementów.

  • 1 rok, 12 miesięcy temu
    edytowane przez: borzole
    Pytanie społeczności

    0

    "bezpieczeństwa kodu źródłowego (zeby nie było widać źródeł) "

    Podczas importowania modułu tworzony jest pliki .pyc i jest on wystarczający do jego działania. W praktyce możesz usunąć kod źródłowy zostawiając tylko te pliki.

    http://docs.python.org/tutorial/modules.html sekcja 6.1.3. “Compiled” Python files¶

  • Chyba największym udokumentowanym powszechnie projektem w Pythonie jest OpenERP. Problemem Pythona w dużych projektach jest potrzeba przyjęcia dobrej organizacji projektu na samym początku i utrzymywania testów jednostkowych na wysokim, dobrze pokrywającym poziomie. Wiele błędów kodzie może ujawniać się w trudnych i rzadkich przypadkach i bardzo często te błędy są wynikiem literówek - dobrze jest też przepuszczać kod przez analizator.

    Python jest językiem dynamicznym, nie wymagającym deklaracji zmiennych i ich typów, a co najistotniejsze z punktu widzenia inżynierii oprogramowania nie pozwala na deklarowanie typów danych w interfejsach. Weryfikację można zakodować tylko ręcznie. Czyni to generowanie dokumentacji i specyfikacji interfejsów dużo trudniejszym niż w Java, C++ czy C#.

Zaloguj się, aby dodać swoją odpowiedź