Wpis z mikrobloga

@esio: No właśnie sęk w tym, że nie widzę powodu dla którego miałoby być droższe, pobierz, zapisz w bazie, coś policz, zawołaj jakiś szablon i już.

//edit

A to już nie ten C++ co kiedyś, że pamięć uciekała, fora do iterowania mapy pisało się na trzy linijki itp.
@WolverinePL: C++ aktualnie fajny jest, ale i tak w php czy javie masz więcej gotowych rozwiązań pod kontem takich apliakcji, bo zwyczajnie większość pisze w javie/php/pythonie/rubym itp itd... W C++ więcej trzeba "wynajdywać" rzeczy od nowa i stąd robią się koszty. Społeczność i zasoby C++ też są ogromne, tyle że nie w tej dziedzinie.
@WolverinePL: Są frameworki do tworzenia stron w C++, ale to podejście nie ma najmniejszego sensu. Dlaczego?

- Pisanie testów jednostkowych w C++ to droga przez mękę (zwłaszcza w źle napisanych systemach)

- Brak refleksji, przez co IoC przez DI jest dość ciężkie

- Kompilacja na serwerze musi się odbyć przed odpaleniem jakiejkolwiek usługi - a to zajmuje dużo czasu i zasobów

- Słabość samego języka, który ma więcej

undefined
w treści
Pisanie testów jednostkowych w C++ to droga przez mękę (zwłaszcza w źle napisanych systemach)


@Hauleth: Zainteresowała mnie ta kwestia, mógłbyś rozwinąć? :) Dla mnie akurat zawsze pisanie testów jednostkowych w C++ było bardzo przyjemne, dzięki deklaracji przyjaźni. Klasę produkcyjną wystarczy zaprzyjaźnić z testową i możesz bez rozluźniania enkapsulacji testować wszystkie metody i wartości pól prywatnych.
@Onoki: Tyle, że musisz wtedy w kodzie pamiętać o tym by odpowiednią klasę zaprzyjaźnić. Więc kod musi wiedzieć kto go będzie testował (co nie jest IMHO nalepszym rozwiązaniem). Poza tym mockowanie metod w C++ (w szczególności niewirtualnych) to droga przez mękę. Nawet w porównaniu z Javą czy Pythonem, C++ wypada słabo, a co dopiero z Rubym czy JSem.
@Hauleth: Nikt nie pisze aplikacji w gołym C++!!! Od unitów, refleksji, zależności, ORM'ów są frameworki i wcale nie musisz ich instalować w systemie, wystarczy lokalnie w katalogu hostingu. Na serwer można wrzucać gotowe binarki, nie trzeba mieć kompilatorów. Na C++ masz spojrzenie ograniczone i średniowieczne... ale jak to mawiają "nie znam się, to się wypowiem".
@vipe: Wrzucisz binarkę. Fajnie, ale jak skompilowaną? Na jaki procesor? Na jaki OS? Skąd wiesz, że host nie wymyśli sobie, że przenoszą/aktualizują system, a nowa wersja ma np. inną wersję libC przez co twoja apka się nawet nie odpali? Ja wiem, że są frameworki, ale:

- są znacznie bardziej ograniczone

- wymagają, by wszystkie części aplikacji używały tych samych bibliotek (bo np. refleksja w C++ nie jest ustandaryzowana, nawet mangling nie
@WolverinePL: A jak? :D Zawsze mam z tym problem. Tylko dwie sprawy: chcę móc przetestować poprawność wszystkich metod prywatnych, oraz chcę móc zbudować skończony projekt bez dołączania testów (czyli testy nie mogą być częścią klas produkcyjnych).
@Onoki: Reguła jest taka, że robisz małe klasy (nie bez powodu na duże klasy mówi się, że są nietestowalne :)) i odwracasz zależności, tzn wstrzykujesz interfejsy a nie tworzysz konkretne implementacje w środku. No i używasz tylko zewnętrznego interfejsu - czyli publiczne metody oraz zawołania do obiektów zależnych.
odwracasz zależności, tzn wstrzykujesz interfejsy a nie tworzysz konkretne implementacje w środku.


@WolverinePL: Nie rozumiem tego zdania, możesz jaśniej? Przypominam, że mówimy o C++, więc mam nadzieję, że nie masz na myśli interfejsu w sensie Javy. :D