"Pitfalls of Object-Oriented Programming" [Polish] Prezentacja do wykładu przygotowanego na Koło Naukowe Twórców Gier "Polygon" na Politechnice Warszawskiej, a w drugiej wersji wygłoszonego także na AGH w Krakowie.
Opracowana na podstawie tekstu Fanatyzm obiektowy, przedstawia krytyczne podejście do projektowania i programowania obiektowego (m.in. pisania wrapperów na używane biblioteki, nadmiernej generalizacji, nadużywania dziedziczenia, enkapsulacji, wzorców projektowych) oraz jego negatywny wpływ na prostotę i czytelność kodu. Jako alternatywę prezentuje podejście DOD (Data-Oriented Design).
Published 2011-03-30
Fibonacci trading – obowiązkowe narzędzia każdego profesjonalnego inwestoraFOREX
Spotkanie było podsumowaniem naszej 8 letniej przygody z technikami Fibonacciego. Podczas spotkania przedstawione zostały stałe, działające koncepcje, które wykorzystujemy każdego dnia na rynku.
Agenda spotkania:
1) Dlaczego Fibonacci?
2) Znacząca przewaga geometrii rynkowych nad innymi strategiami.
3) Zrozum budowę rynków – fraktalność w praktyce.
4) W jakim stopniu dołki i szczyty są przypadkowe na wykresach? Czy można je wyznaczyć z pewnym wyprzedzeniem?
5) Stały zyskowny układ, który działa nieprzerwanie od 2009 roku.
6) Potwierdzenie rynkowe, które sprawdza się na wysoce płynnych rynkach.
7) Sprawdzony i bezpieczny schemat wejścia w pozycję.
8) Kiedy księgować zyski, czyli od czego zależy ustawienie zlecenia Take Profit?
9) Jak wygląda nauka technik Fibonacciego?
10) Dodatkowe materiały dla Państwa.
Tworzenie wydajnego kodu c++ w podejściu zorientowanym na daneAdam Sawicki
(Polish) Prezentacja do prelekcji wygłoszonej podczas VIII Ogólnopolskiej Konferencji Inżynierii Gier Komputerowych IGK'8-2011 w Siedlcach.
Autorzy: Adam Sawicki i Tomasz Dąbrowski.
Streszczenie referatu: Artykuł opisuje wady programowania obiektowego - zarówno od strony projektowej, jak i ze względu na wydajność kodu. Porusza problem opóźnienia w dostępie do pamięci RAM we współczesnych architekturach komputerowych. Przedstawia programowanie zorientowane na dane (ang. DOD - Data-Oriented Design) jako alternatywne podejście do projektowania i implementowania silnika gry kładące nacisk na optymalizację struktur danych pod kątem szybkości. Porusza także problem wydajności poszczególnych konstrukcji języka C++.
Published 2011-03-26
Teoria Fal Elliotta - to jedna z najstarszych i najbardziej skutecznych metod analitycznych możliwych do zastosowania na wszelkich rynkach finansowych.
1. Czym są i do czego służą formacje harmoniczne?
2. Formacja Gartley 222 - pierwsza i najbardziej znana formacja harmoniczna
3. Formacja Butterfly - formacja określana jako zanegowany Gartley
"Pitfalls of Object-Oriented Programming" [Polish] Prezentacja do wykładu przygotowanego na Koło Naukowe Twórców Gier "Polygon" na Politechnice Warszawskiej, a w drugiej wersji wygłoszonego także na AGH w Krakowie.
Opracowana na podstawie tekstu Fanatyzm obiektowy, przedstawia krytyczne podejście do projektowania i programowania obiektowego (m.in. pisania wrapperów na używane biblioteki, nadmiernej generalizacji, nadużywania dziedziczenia, enkapsulacji, wzorców projektowych) oraz jego negatywny wpływ na prostotę i czytelność kodu. Jako alternatywę prezentuje podejście DOD (Data-Oriented Design).
Published 2011-03-30
Fibonacci trading – obowiązkowe narzędzia każdego profesjonalnego inwestoraFOREX
Spotkanie było podsumowaniem naszej 8 letniej przygody z technikami Fibonacciego. Podczas spotkania przedstawione zostały stałe, działające koncepcje, które wykorzystujemy każdego dnia na rynku.
Agenda spotkania:
1) Dlaczego Fibonacci?
2) Znacząca przewaga geometrii rynkowych nad innymi strategiami.
3) Zrozum budowę rynków – fraktalność w praktyce.
4) W jakim stopniu dołki i szczyty są przypadkowe na wykresach? Czy można je wyznaczyć z pewnym wyprzedzeniem?
5) Stały zyskowny układ, który działa nieprzerwanie od 2009 roku.
6) Potwierdzenie rynkowe, które sprawdza się na wysoce płynnych rynkach.
7) Sprawdzony i bezpieczny schemat wejścia w pozycję.
8) Kiedy księgować zyski, czyli od czego zależy ustawienie zlecenia Take Profit?
9) Jak wygląda nauka technik Fibonacciego?
10) Dodatkowe materiały dla Państwa.
Tworzenie wydajnego kodu c++ w podejściu zorientowanym na daneAdam Sawicki
(Polish) Prezentacja do prelekcji wygłoszonej podczas VIII Ogólnopolskiej Konferencji Inżynierii Gier Komputerowych IGK'8-2011 w Siedlcach.
Autorzy: Adam Sawicki i Tomasz Dąbrowski.
Streszczenie referatu: Artykuł opisuje wady programowania obiektowego - zarówno od strony projektowej, jak i ze względu na wydajność kodu. Porusza problem opóźnienia w dostępie do pamięci RAM we współczesnych architekturach komputerowych. Przedstawia programowanie zorientowane na dane (ang. DOD - Data-Oriented Design) jako alternatywne podejście do projektowania i implementowania silnika gry kładące nacisk na optymalizację struktur danych pod kątem szybkości. Porusza także problem wydajności poszczególnych konstrukcji języka C++.
Published 2011-03-26
Teoria Fal Elliotta - to jedna z najstarszych i najbardziej skutecznych metod analitycznych możliwych do zastosowania na wszelkich rynkach finansowych.
1. Czym są i do czego służą formacje harmoniczne?
2. Formacja Gartley 222 - pierwsza i najbardziej znana formacja harmoniczna
3. Formacja Butterfly - formacja określana jako zanegowany Gartley
"C++ in game programming" [Polish] Prezentacja do wykładu przygotowanego na Koło Naukowe Twórców Gier "Polygon" przy Politechnice Warszawskiej. Opisuje: dlaczego do programowania gier używa się właśnie języka C++, co stosować, a czego unikać, aby pisany kod był dobry i przede wszystkim wydajny w działaniu.
Date: 2010-10-30
Poznaj możliwości i mechanizmy C++ stosowane przez profesjonalistów
* Efektywne zarządzanie pamięcią
* Obsługa błędów
* Biblioteki i wzorce projektowe
Język C++ od dawna cieszy się zasłużoną popularnością wśród twórców oprogramowania. Jednak często nawet najbardziej doświadczeni programiści nie wykorzystują wszystkich jego możliwości. W opracowaniach dotyczących tego języka najczęściej omawiana jest składnia i elementy języka, a znacznie rzadziej -- jego praktyczne zastosowania. Brak odniesień do praktyki powoduje nieznajomość wielu niezwykle przydatnych i ułatwiających pracę aspektów C++ i nadmierne eksploatowanie prostych, książkowych konstrukcji.
Książka "C++. Zaawansowane programowanie" to przegląd metod programowania nie omawianych w większości publikacji. Ten przeznaczony dla średnio zaawansowanych programistów podręcznik przedstawia zasady stosowania C++ do rozwiązywania prawdziwych problemów. Opisuje nieznane możliwości znacznie przyspieszające i usprawniające pracę, sposoby tworzenia przenośnego kodu oraz testowania oprogramowania. Książka zawiera również omówienie biblioteki standardowej C++ oraz wzorców projektowych.
* Zasady tworzenia projektów w C++
* Projektowanie obiektowe
* Korzystanie z biblioteki standardowej C++
* Tworzenie kodu przeznaczonego do wielokrotnego zastosowania
* Styl kodowania
* Zarządzanie pamięcią
* Procedury obsługi wyjątków
* Przeciążanie operatorów
* Tworzenie aplikacji wieloplatformowych
* Testowanie kodu i usuwanie błędów
* Programowanie rozproszone
* Stosowanie wzorców projektowych
Naucz się korzystać z C++ tak, jak robią to profesjonaliści.
Jak zacząć przygodę z tworzeniem dużych produkcji? Co zrobić, żeby stać się częścią branży gier? Prezentacja pokazuje możliwe ścieżki rozwoju dla programistów, pokazując przy tym, że gry mają znacznie więcej wspólnego z "poważnym" oprogramowaniem niż się może wydawać.
Język C++ od czasu jego zdefiniowania przez Bjarne Stroustrupa był kilkakrotnie uaktualniany w latach 80. i 90. XX wieku. Chociaż C++Builder nie jest dokładnym odzwierciedleniem standardu ANSI języka C++, to obecna jego wersja przygotowana przez firmę Borland jest stabilna i zgodna z oczekiwaniami programistów. Borland C++Builder stanowi połączenie nowoczesnego języka programowania, jakim jest C++, biblioteki komponentów wizualnych VCL/CLX oraz zintegrowanego środowiska programisty IDE.
"C++Builder. Kompendium programisty" omawia podstawy programowania w C++ ze szczególnym uwzględnieniem możliwości oferowanych przez kompilator Borland C++Builder. Poznasz więc nie tylko sam język, ale nauczysz się pisać w nim wydajne i przenośne aplikacje, działające zarówno w środowisku linuksowym, jak i w Windows.
Omówione zagadnienia obejmują:
* Opis zintegrowanego środowiska programisty C++Buildera
* Podstawy języka C++
* Wczesne oraz późne wiązanie -- wstęp do programowania zorientowanego obiektowo
* Możliwości C++Buildera w zakresie posługiwania się tablicami różnego typu
* Zaawansowane operatory rzutowania typów
* Informacje czasu wykonania
* Obsługę wyjątków
* Obsługę plików
* Łańcuchy ANSI
* Zmienne o typie modyfikowalnym w czasie wykonywania programu
* Funkcje FPU i systemowe
* Elementy wielowątkowości -- wykorzystanie C++ oraz C++Buildera w nowoczesnych, wielowątkowych systemach operacyjnych
* Liczby pseudolosowe i konwersje wielkości liczbowych
* Wprowadzenie do grafiki
* Komponentowy model C++Buildera i biblioteki DLL
* Biblioteka CLX -- projektowanie aplikacji przenośnych pomiędzy systemami operacyjnymi Windows i Linux
Zostań profesjonalnym programistą C#
C# jest uważany przez wielu programistów za najlepszy język stosowany do tworzenia aplikacji dla platformy .NET. Język ten, opracowany w firmie Microsoft, łączy w sobie najbardziej wartościowe cechy C++ i Javy, ścisłą integrację z komponentami .NET, wysoki poziom bezpieczeństwa i ogromne możliwości. Świetnie nadaje się do tworzenia aplikacji sieciowych i bazodanowych przeznaczonych zarówno dla systemu Windows, jak i dla urządzeń przenośnych, takich jak PocketPC. Popularność C# stale rośnie, a nieodpłatne udostępnienie przez firmę Microsoft środowiska programistycznego Visual C# Express Edition sprawiło, że coraz więcej twórców oprogramowania wykorzystuje je w swojej pracy.
Książka "Wstęp do programowania w języku C#" to podręcznik przeznaczony dla tych, którzy chcą poznać ten język od podstaw. Czytając ją, poznasz możliwości C# i platformy .NET. Nauczysz się tworzyć własne aplikacje, korzystając ze środowiska Visual C# Express Edition. W książce znajdziesz omówienie składni i elementów języka C#, wyjaśnienie zasad programowania obiektowego i sposobów realizacji różnych zadań programistycznych. Napiszesz aplikacje dla Windows wykorzystujące biblioteki klas .NET i obsługujące pliki w formacie XML.
* Konstrukcja platformy .NET
* Składnia C#
* Elementy języka
* Programowanie obiektowe
* Obsługa zdarzeń
* Korzystanie z tablic i kolekcji
* Obsługa wyjątków
* Biblioteka Windows Forms
* Stosowanie komponentów .NET
* Operacje na plikach i strumieniach
* Obsługa formatu XML
Podręcznik podstawowego języka programowania dla platformy .NET
* Poznaj elementy języka C#
* Stwórz własną aplikację
* Komunikuj się z bazami danych
Język C# został opracowany przez firmę Microsoft jako podstawowe narzędzie programistyczne dla platformy .NET. C# łączący w sobie najlepsze cechy języków C, C++, Java i Visual Basic doskonale nadaje się do tworzenia aplikacji bazujących na komponentach. Jest prosty, bezpieczny ze względu na typy, oparty na obiektach i komponentach i przygotowany do obsługi mechanizmów komunikacji sieciowej. Za pomocą C# tworzone są nie tylko aplikacje na "duże" komputery, ale także programy dla platformy PocketPC. Popularność C# nadal rośnie, a jego producent stale inwestuje w dalszy rozwój tego narzędzia i platformy .NET.
"C#. Programowanie" to podręcznik przedstawiający tajniki tworzenia aplikacji dla .NET w języku C#. Przeczytasz w nim o podstawowych elementach i strukturach C#, zasadach programowania obiektowego oraz obsłudze wyjątków i błędów. Poznasz sposoby tworzenia aplikacji z wykorzystaniem podstawowych technologii tworzenia aplikacji dla platformy .NET -- ASP.NET, Windows Forms i ADO.NET. Nauczysz się wykorzystywać metadane i łączyć swoje aplikacje z API Windows oraz obiektami COM.
* Typy w języku C#
* Zmienne i stałe
* Instrukcje, operatory i dyrektywy preprocesora
* Reguły programowania obiektowego
* Operacje na łańcuchach znaków
* Stosowanie wyrażeń regularnych
* Tworzenie aplikacji dla systemu Windows
* Łączenie z bazami danych za pomocą ADO.NET
* Pisanie aplikacji i usług sieciowych
* Zdalne korzystanie z obiektów
* Wątki i synchronizacja
* Operacje na plikach
* Opisuje C# 2.0, .NET 2.0 oraz Visual Studio 2005
Poznaj nowoczesne techniki programowania.
Doskonałe źródło wiedzy dla wszystkich programistów C#
* Szczegółowe omówienie C# i .NET w wersji 2.0
* Techniki tworzenia i zabezpieczania aplikacji oraz zarządzania kodem źródłowym i wersjami
* Dziesiątki przykładów i kodów źródłowych
Platforma .NET i język C# spowodowały prawdziwą rewolucję na rynku narzędzi programistycznych. Wersja 2.0 przyniosła kilka interesujących rozwiązań, w tym nowe typy danych, komponenty i klasy. Dodatkowe funkcje języka C# pozwalają na przyspieszenie i usprawnienie procesu tworzenia aplikacji oraz jej wdrażania i rozwijania. Dzięki platformie .NET przygotowanie wydajnej, bezpiecznej i łatwej do rozbudowy aplikacji stało się znacznie prostsze i szybsze.
Książka "C# i .NET" przedstawia możliwości platformy .NET i napisanego specjalnie dla niej języka C#. Opisuje elementy platformy, składnię i możliwości języka C# oraz zagadnienia związane z tworzeniem programów za pomocą tych narzędzi. Omawia zasady pisania aplikacji Window Forms i efektywne techniki stosowania klas graficznych z biblioteki GDI+. Charakteryzuje także technologię ADO.NET, metody korzystania z plików XML, przetwarzanie wielowątkowe oraz techniki tworzenia wydajnych aplikacji internetowych w technologii ASP.NET. Szczególną uwagę poświęcono bezpieczeństwu programów i danych oraz skalowaniu i lokalizacji oprogramowania.
* Elementy platformy .NET
* Podstawy języka C#
* Praca z klasami i obiektami w C#
* Przetwarzanie tekstu oraz operacje wejścia i wyjścia
* Tworzenie aplikacji Window Forms
* Korzystanie z biblioteki GDI+
* Połączenia z bazami danych za pomocą ADO.NET
* Aplikacje wielowątkowe oraz rozproszone
* Tworzenie aplikacji internetowych
Jeśli chcesz napisać w C# aplikację dobrej jakości, sięgnij po tę książkę.
"C++. Kruczki i fortele w programowaniu" to pomoc dla zawodowych programistów pozwalająca uniknąć lub poprawić dziewięćdziesiąt dziewięć najczęściej popełnianych i najbardziej szkodliwych błędów projektowych i programowych w C++. Jest to też książka, dzięki której można poznać niektóre niestandardowe cechy języka C++ i techniki programistyczne.
W książce omówiono typowe błędy występujące niemalże we wszystkich programach utworzonych w C++. Każdy z nich został starannie opisany, przedstawiono również konsekwencje wynikające z ich pojawienia się w kodzie programu i szczegółowy opis sposobów na ich uniknięcie. "C++. Kruczki i fortele w programowaniu” to książka o tym, jak uniknąć największych zagrożeń związanych z programowaniem w C++. Gotowa i praktyczna wiedza dla programistów, która pozwoli im uzyskać status ekspertów.
Omówione błędy dotyczą:
* Podstaw języka C++
* Składni języka
* Preprocesora
* Konwersji
* Inicjalizacji
* Zarządzania pamięcią i zasobami
* Polimorfizmu
* Projektowania klas
* Projektowania hierarchii
O autorze:
Stephen C. Dewhurst był jednym z pierwszych użytkowników języka C++ w laboratoriach Bell Labs. Ma ponad dwudziestoletnie doświadczenie w stosowaniu C++ do rozwiązywania problemów w takich dziedzinach, jak projektowanie kompilatorów, zabezpieczanie handlu elektronicznego czy telekomunikacja implementowana na bazie urządzeń wbudowanych [więcej...]
Jakość oprogramowania jest rozbudowaną dziedziną wiedzy, którą każdy programista zna doskonale, ale ilu tak naprawdę stosuje skutecznie? W prelekcji przedstawię zarówno najważniejsze, zweryfikowane praktycznie sposoby podnoszenia i utrzymywania jakości oprogramowania na założonym poziomie, jak również omówię kilka pułapek, w które nadzwyczaj łatwo wpadamy.
Doskonały podręcznik dla początkujących programistów
* Typy danych i konstrukcje sterujące
* Programowanie proceduralne i obiektowe
* Biblioteka STL
* Obsługa plików
C++ to jeden z najpopularniejszych języków programowania, jego możliwości są ogromne. Używa się go do pisania aplikacji narzędziowych, gier, a nawet systemów operacyjnych. Nauka języka C++ jest jednak żmudnym i skomplikowanym procesem -- to prawdziwe wyzwanie dla programistów. Opanowanie potęgi C++ wymaga poznania zasad programowania obiektowego, korzystania z bibliotek i szablonów, obsługi błędów i wyjątków i wielu innych zagadnień. Ale odpowiednio napisany podręcznik, zawierający podstawową wiedzę na temat tego języka, zdecydowanie ułatwi przyswojenie sztuki programowania w C++.
Książka "Język C++. Szkoła programowania. Wydanie V" to właśnie taki podręcznik. Jego autor Stephen Prata przedstawia C++ w sposób idealnie nadający się dla początkujących programistów chcących opanować tajniki tego języka. Czytając tę książkę, poznasz historię języka C i jego najważniejsze elementy, dowiesz się, czym różni się programowanie proceduralne od obiektowego i jak stosować te dwie techniki, korzystając z C++. Nauczysz się definiować klasy i obiekty, przydzielać zasoby pamięci dla aplikacji, korzystać ze wskaźników i implementować mechanizmy obsługi plików i strumieni wejścia-wyjścia.
* Kompilatory języka C++
* Struktura programu
* Proste i złożone typy danych
* Pętle i instrukcje warunkowe
* Definiowanie funkcji i korzystanie z nich
* Model pamięci w C++
* Podstawowe elementy programowania obiektowego -- obiekty i klasy
* Dynamiczne przydzielanie pamięci
* Mechanizmy dziedziczenia
* Obsługa wyjątków
* Biblioteka STL
* Operacje wejścia-wyjścia
Poznaj najważniejsze zasady programowania w C++.
O zagadnieniu:
Czy następuje taki moment w życiu programisty, kiedy może on stwierdzić, że jego warsztat jest już doskonały? Nie, jeżeli pracuje w technologiach internetowych. Ta dziedzina informatyki rozwija się w niesamowicie szybkim tempie, a stworzone wczoraj rozwiązania warto stosować już dziś!
Cel i korzyści spotkania:
Podczas spotkania słuchacze poznają aktualnie wykorzystywane technologie oraz kluczowe umiejętności w produkcji aplikacji internetowych, jak również metody programowania ekstremalnego i techniki zwinnego wytwarzania oprogramowania. Osobom, które dopiero zaczynają swoją przygodę z web development, zostanie przedstawiona propozycja działań, których sumienne podjęcie się gwarantuje odniesienie sukcesu zawodowego.
Kompletny przewodnik po środowisku C++ Buildera
C++ Builder to zgodne ze standardem ANSI C++ środowisko szybkiego tworzenia aplikacji (RAD) w systemie Windows. Dzięki C++ Builder można tworzyć zarówno aplikacje typu "desktop", jak również aplikacje rozproszone i internetowe. "C++ Builder 6. Vademecum profesjonalisty" dostarczy Ci aktualnych informacji na temat najnowszych możliwości tego środowiska. Poznasz między innymi technologie DataSnap, C++ Mobile, XML, BizSnap, dbExpress.
Książka ta była pisana z myślą o aktualnych i przyszłych użytkownikach środowiska C++ Builder. Jest to poradnik dla programistów, a jego podstawowym zadaniem jest poszerzenie wiedzy na temat środowiska C++ Builder i związanych z nim technologii; opis najnowszych funkcji wprowadzonych w wersji 6 środowiska oraz ułatwienie tworzenia wydajnego i użytecznego oprogramowania. Choć większość rozdziałów adresowana jest do średnio zaawansowanych i zaawansowanych użytkowników, zostały one ułożone w taki sposób, że stopień trudności rośnie wraz z numerami rozdziałów, więc początkujący programiści nie powinni mieć większych problemów ze zrozumieniem opisywanych koncepcji.
* Naucz się tworzyć mobilne aplikacje korzystając z Borland C++Mobile Edition
* Poznaj sposoby przetwarzania i transformacji dokumentów XML
* Twórz usługi sieciowe wykorzystując BizSnap oraz WSDL i SOAP
* Pisz aplikacje rozproszone za pomocą DataSnap
* Uzyskaj dostęp do baz danych niezależnie od platformy wykorzystując dbExpress
* Poznaj sztuczki i chwyty stosowane przy pisaniu aplikacji graficznych i multimedialnych
* Poszerz możliwości środowiska programistycznego za pomocą OpenToolsAPI
* Poznaj tajniki Windows 32 API i wykorzystaj je w swoich aplikacjach
Doświadczenie i bogata wiedza autorów „C++Builder 6. Vademecum profesjonalisty" to gwarancja rzetelności tej książki. Jeśli programujesz w C++ Builder, jest Ci ona po prostu niezbędna.
More Related Content
Similar to Pisząc kod natywny C/C++, czyli nie taki diabeł straszny
"C++ in game programming" [Polish] Prezentacja do wykładu przygotowanego na Koło Naukowe Twórców Gier "Polygon" przy Politechnice Warszawskiej. Opisuje: dlaczego do programowania gier używa się właśnie języka C++, co stosować, a czego unikać, aby pisany kod był dobry i przede wszystkim wydajny w działaniu.
Date: 2010-10-30
Poznaj możliwości i mechanizmy C++ stosowane przez profesjonalistów
* Efektywne zarządzanie pamięcią
* Obsługa błędów
* Biblioteki i wzorce projektowe
Język C++ od dawna cieszy się zasłużoną popularnością wśród twórców oprogramowania. Jednak często nawet najbardziej doświadczeni programiści nie wykorzystują wszystkich jego możliwości. W opracowaniach dotyczących tego języka najczęściej omawiana jest składnia i elementy języka, a znacznie rzadziej -- jego praktyczne zastosowania. Brak odniesień do praktyki powoduje nieznajomość wielu niezwykle przydatnych i ułatwiających pracę aspektów C++ i nadmierne eksploatowanie prostych, książkowych konstrukcji.
Książka "C++. Zaawansowane programowanie" to przegląd metod programowania nie omawianych w większości publikacji. Ten przeznaczony dla średnio zaawansowanych programistów podręcznik przedstawia zasady stosowania C++ do rozwiązywania prawdziwych problemów. Opisuje nieznane możliwości znacznie przyspieszające i usprawniające pracę, sposoby tworzenia przenośnego kodu oraz testowania oprogramowania. Książka zawiera również omówienie biblioteki standardowej C++ oraz wzorców projektowych.
* Zasady tworzenia projektów w C++
* Projektowanie obiektowe
* Korzystanie z biblioteki standardowej C++
* Tworzenie kodu przeznaczonego do wielokrotnego zastosowania
* Styl kodowania
* Zarządzanie pamięcią
* Procedury obsługi wyjątków
* Przeciążanie operatorów
* Tworzenie aplikacji wieloplatformowych
* Testowanie kodu i usuwanie błędów
* Programowanie rozproszone
* Stosowanie wzorców projektowych
Naucz się korzystać z C++ tak, jak robią to profesjonaliści.
Jak zacząć przygodę z tworzeniem dużych produkcji? Co zrobić, żeby stać się częścią branży gier? Prezentacja pokazuje możliwe ścieżki rozwoju dla programistów, pokazując przy tym, że gry mają znacznie więcej wspólnego z "poważnym" oprogramowaniem niż się może wydawać.
Język C++ od czasu jego zdefiniowania przez Bjarne Stroustrupa był kilkakrotnie uaktualniany w latach 80. i 90. XX wieku. Chociaż C++Builder nie jest dokładnym odzwierciedleniem standardu ANSI języka C++, to obecna jego wersja przygotowana przez firmę Borland jest stabilna i zgodna z oczekiwaniami programistów. Borland C++Builder stanowi połączenie nowoczesnego języka programowania, jakim jest C++, biblioteki komponentów wizualnych VCL/CLX oraz zintegrowanego środowiska programisty IDE.
"C++Builder. Kompendium programisty" omawia podstawy programowania w C++ ze szczególnym uwzględnieniem możliwości oferowanych przez kompilator Borland C++Builder. Poznasz więc nie tylko sam język, ale nauczysz się pisać w nim wydajne i przenośne aplikacje, działające zarówno w środowisku linuksowym, jak i w Windows.
Omówione zagadnienia obejmują:
* Opis zintegrowanego środowiska programisty C++Buildera
* Podstawy języka C++
* Wczesne oraz późne wiązanie -- wstęp do programowania zorientowanego obiektowo
* Możliwości C++Buildera w zakresie posługiwania się tablicami różnego typu
* Zaawansowane operatory rzutowania typów
* Informacje czasu wykonania
* Obsługę wyjątków
* Obsługę plików
* Łańcuchy ANSI
* Zmienne o typie modyfikowalnym w czasie wykonywania programu
* Funkcje FPU i systemowe
* Elementy wielowątkowości -- wykorzystanie C++ oraz C++Buildera w nowoczesnych, wielowątkowych systemach operacyjnych
* Liczby pseudolosowe i konwersje wielkości liczbowych
* Wprowadzenie do grafiki
* Komponentowy model C++Buildera i biblioteki DLL
* Biblioteka CLX -- projektowanie aplikacji przenośnych pomiędzy systemami operacyjnymi Windows i Linux
Zostań profesjonalnym programistą C#
C# jest uważany przez wielu programistów za najlepszy język stosowany do tworzenia aplikacji dla platformy .NET. Język ten, opracowany w firmie Microsoft, łączy w sobie najbardziej wartościowe cechy C++ i Javy, ścisłą integrację z komponentami .NET, wysoki poziom bezpieczeństwa i ogromne możliwości. Świetnie nadaje się do tworzenia aplikacji sieciowych i bazodanowych przeznaczonych zarówno dla systemu Windows, jak i dla urządzeń przenośnych, takich jak PocketPC. Popularność C# stale rośnie, a nieodpłatne udostępnienie przez firmę Microsoft środowiska programistycznego Visual C# Express Edition sprawiło, że coraz więcej twórców oprogramowania wykorzystuje je w swojej pracy.
Książka "Wstęp do programowania w języku C#" to podręcznik przeznaczony dla tych, którzy chcą poznać ten język od podstaw. Czytając ją, poznasz możliwości C# i platformy .NET. Nauczysz się tworzyć własne aplikacje, korzystając ze środowiska Visual C# Express Edition. W książce znajdziesz omówienie składni i elementów języka C#, wyjaśnienie zasad programowania obiektowego i sposobów realizacji różnych zadań programistycznych. Napiszesz aplikacje dla Windows wykorzystujące biblioteki klas .NET i obsługujące pliki w formacie XML.
* Konstrukcja platformy .NET
* Składnia C#
* Elementy języka
* Programowanie obiektowe
* Obsługa zdarzeń
* Korzystanie z tablic i kolekcji
* Obsługa wyjątków
* Biblioteka Windows Forms
* Stosowanie komponentów .NET
* Operacje na plikach i strumieniach
* Obsługa formatu XML
Podręcznik podstawowego języka programowania dla platformy .NET
* Poznaj elementy języka C#
* Stwórz własną aplikację
* Komunikuj się z bazami danych
Język C# został opracowany przez firmę Microsoft jako podstawowe narzędzie programistyczne dla platformy .NET. C# łączący w sobie najlepsze cechy języków C, C++, Java i Visual Basic doskonale nadaje się do tworzenia aplikacji bazujących na komponentach. Jest prosty, bezpieczny ze względu na typy, oparty na obiektach i komponentach i przygotowany do obsługi mechanizmów komunikacji sieciowej. Za pomocą C# tworzone są nie tylko aplikacje na "duże" komputery, ale także programy dla platformy PocketPC. Popularność C# nadal rośnie, a jego producent stale inwestuje w dalszy rozwój tego narzędzia i platformy .NET.
"C#. Programowanie" to podręcznik przedstawiający tajniki tworzenia aplikacji dla .NET w języku C#. Przeczytasz w nim o podstawowych elementach i strukturach C#, zasadach programowania obiektowego oraz obsłudze wyjątków i błędów. Poznasz sposoby tworzenia aplikacji z wykorzystaniem podstawowych technologii tworzenia aplikacji dla platformy .NET -- ASP.NET, Windows Forms i ADO.NET. Nauczysz się wykorzystywać metadane i łączyć swoje aplikacje z API Windows oraz obiektami COM.
* Typy w języku C#
* Zmienne i stałe
* Instrukcje, operatory i dyrektywy preprocesora
* Reguły programowania obiektowego
* Operacje na łańcuchach znaków
* Stosowanie wyrażeń regularnych
* Tworzenie aplikacji dla systemu Windows
* Łączenie z bazami danych za pomocą ADO.NET
* Pisanie aplikacji i usług sieciowych
* Zdalne korzystanie z obiektów
* Wątki i synchronizacja
* Operacje na plikach
* Opisuje C# 2.0, .NET 2.0 oraz Visual Studio 2005
Poznaj nowoczesne techniki programowania.
Doskonałe źródło wiedzy dla wszystkich programistów C#
* Szczegółowe omówienie C# i .NET w wersji 2.0
* Techniki tworzenia i zabezpieczania aplikacji oraz zarządzania kodem źródłowym i wersjami
* Dziesiątki przykładów i kodów źródłowych
Platforma .NET i język C# spowodowały prawdziwą rewolucję na rynku narzędzi programistycznych. Wersja 2.0 przyniosła kilka interesujących rozwiązań, w tym nowe typy danych, komponenty i klasy. Dodatkowe funkcje języka C# pozwalają na przyspieszenie i usprawnienie procesu tworzenia aplikacji oraz jej wdrażania i rozwijania. Dzięki platformie .NET przygotowanie wydajnej, bezpiecznej i łatwej do rozbudowy aplikacji stało się znacznie prostsze i szybsze.
Książka "C# i .NET" przedstawia możliwości platformy .NET i napisanego specjalnie dla niej języka C#. Opisuje elementy platformy, składnię i możliwości języka C# oraz zagadnienia związane z tworzeniem programów za pomocą tych narzędzi. Omawia zasady pisania aplikacji Window Forms i efektywne techniki stosowania klas graficznych z biblioteki GDI+. Charakteryzuje także technologię ADO.NET, metody korzystania z plików XML, przetwarzanie wielowątkowe oraz techniki tworzenia wydajnych aplikacji internetowych w technologii ASP.NET. Szczególną uwagę poświęcono bezpieczeństwu programów i danych oraz skalowaniu i lokalizacji oprogramowania.
* Elementy platformy .NET
* Podstawy języka C#
* Praca z klasami i obiektami w C#
* Przetwarzanie tekstu oraz operacje wejścia i wyjścia
* Tworzenie aplikacji Window Forms
* Korzystanie z biblioteki GDI+
* Połączenia z bazami danych za pomocą ADO.NET
* Aplikacje wielowątkowe oraz rozproszone
* Tworzenie aplikacji internetowych
Jeśli chcesz napisać w C# aplikację dobrej jakości, sięgnij po tę książkę.
"C++. Kruczki i fortele w programowaniu" to pomoc dla zawodowych programistów pozwalająca uniknąć lub poprawić dziewięćdziesiąt dziewięć najczęściej popełnianych i najbardziej szkodliwych błędów projektowych i programowych w C++. Jest to też książka, dzięki której można poznać niektóre niestandardowe cechy języka C++ i techniki programistyczne.
W książce omówiono typowe błędy występujące niemalże we wszystkich programach utworzonych w C++. Każdy z nich został starannie opisany, przedstawiono również konsekwencje wynikające z ich pojawienia się w kodzie programu i szczegółowy opis sposobów na ich uniknięcie. "C++. Kruczki i fortele w programowaniu” to książka o tym, jak uniknąć największych zagrożeń związanych z programowaniem w C++. Gotowa i praktyczna wiedza dla programistów, która pozwoli im uzyskać status ekspertów.
Omówione błędy dotyczą:
* Podstaw języka C++
* Składni języka
* Preprocesora
* Konwersji
* Inicjalizacji
* Zarządzania pamięcią i zasobami
* Polimorfizmu
* Projektowania klas
* Projektowania hierarchii
O autorze:
Stephen C. Dewhurst był jednym z pierwszych użytkowników języka C++ w laboratoriach Bell Labs. Ma ponad dwudziestoletnie doświadczenie w stosowaniu C++ do rozwiązywania problemów w takich dziedzinach, jak projektowanie kompilatorów, zabezpieczanie handlu elektronicznego czy telekomunikacja implementowana na bazie urządzeń wbudowanych [więcej...]
Jakość oprogramowania jest rozbudowaną dziedziną wiedzy, którą każdy programista zna doskonale, ale ilu tak naprawdę stosuje skutecznie? W prelekcji przedstawię zarówno najważniejsze, zweryfikowane praktycznie sposoby podnoszenia i utrzymywania jakości oprogramowania na założonym poziomie, jak również omówię kilka pułapek, w które nadzwyczaj łatwo wpadamy.
Doskonały podręcznik dla początkujących programistów
* Typy danych i konstrukcje sterujące
* Programowanie proceduralne i obiektowe
* Biblioteka STL
* Obsługa plików
C++ to jeden z najpopularniejszych języków programowania, jego możliwości są ogromne. Używa się go do pisania aplikacji narzędziowych, gier, a nawet systemów operacyjnych. Nauka języka C++ jest jednak żmudnym i skomplikowanym procesem -- to prawdziwe wyzwanie dla programistów. Opanowanie potęgi C++ wymaga poznania zasad programowania obiektowego, korzystania z bibliotek i szablonów, obsługi błędów i wyjątków i wielu innych zagadnień. Ale odpowiednio napisany podręcznik, zawierający podstawową wiedzę na temat tego języka, zdecydowanie ułatwi przyswojenie sztuki programowania w C++.
Książka "Język C++. Szkoła programowania. Wydanie V" to właśnie taki podręcznik. Jego autor Stephen Prata przedstawia C++ w sposób idealnie nadający się dla początkujących programistów chcących opanować tajniki tego języka. Czytając tę książkę, poznasz historię języka C i jego najważniejsze elementy, dowiesz się, czym różni się programowanie proceduralne od obiektowego i jak stosować te dwie techniki, korzystając z C++. Nauczysz się definiować klasy i obiekty, przydzielać zasoby pamięci dla aplikacji, korzystać ze wskaźników i implementować mechanizmy obsługi plików i strumieni wejścia-wyjścia.
* Kompilatory języka C++
* Struktura programu
* Proste i złożone typy danych
* Pętle i instrukcje warunkowe
* Definiowanie funkcji i korzystanie z nich
* Model pamięci w C++
* Podstawowe elementy programowania obiektowego -- obiekty i klasy
* Dynamiczne przydzielanie pamięci
* Mechanizmy dziedziczenia
* Obsługa wyjątków
* Biblioteka STL
* Operacje wejścia-wyjścia
Poznaj najważniejsze zasady programowania w C++.
O zagadnieniu:
Czy następuje taki moment w życiu programisty, kiedy może on stwierdzić, że jego warsztat jest już doskonały? Nie, jeżeli pracuje w technologiach internetowych. Ta dziedzina informatyki rozwija się w niesamowicie szybkim tempie, a stworzone wczoraj rozwiązania warto stosować już dziś!
Cel i korzyści spotkania:
Podczas spotkania słuchacze poznają aktualnie wykorzystywane technologie oraz kluczowe umiejętności w produkcji aplikacji internetowych, jak również metody programowania ekstremalnego i techniki zwinnego wytwarzania oprogramowania. Osobom, które dopiero zaczynają swoją przygodę z web development, zostanie przedstawiona propozycja działań, których sumienne podjęcie się gwarantuje odniesienie sukcesu zawodowego.
Kompletny przewodnik po środowisku C++ Buildera
C++ Builder to zgodne ze standardem ANSI C++ środowisko szybkiego tworzenia aplikacji (RAD) w systemie Windows. Dzięki C++ Builder można tworzyć zarówno aplikacje typu "desktop", jak również aplikacje rozproszone i internetowe. "C++ Builder 6. Vademecum profesjonalisty" dostarczy Ci aktualnych informacji na temat najnowszych możliwości tego środowiska. Poznasz między innymi technologie DataSnap, C++ Mobile, XML, BizSnap, dbExpress.
Książka ta była pisana z myślą o aktualnych i przyszłych użytkownikach środowiska C++ Builder. Jest to poradnik dla programistów, a jego podstawowym zadaniem jest poszerzenie wiedzy na temat środowiska C++ Builder i związanych z nim technologii; opis najnowszych funkcji wprowadzonych w wersji 6 środowiska oraz ułatwienie tworzenia wydajnego i użytecznego oprogramowania. Choć większość rozdziałów adresowana jest do średnio zaawansowanych i zaawansowanych użytkowników, zostały one ułożone w taki sposób, że stopień trudności rośnie wraz z numerami rozdziałów, więc początkujący programiści nie powinni mieć większych problemów ze zrozumieniem opisywanych koncepcji.
* Naucz się tworzyć mobilne aplikacje korzystając z Borland C++Mobile Edition
* Poznaj sposoby przetwarzania i transformacji dokumentów XML
* Twórz usługi sieciowe wykorzystując BizSnap oraz WSDL i SOAP
* Pisz aplikacje rozproszone za pomocą DataSnap
* Uzyskaj dostęp do baz danych niezależnie od platformy wykorzystując dbExpress
* Poznaj sztuczki i chwyty stosowane przy pisaniu aplikacji graficznych i multimedialnych
* Poszerz możliwości środowiska programistycznego za pomocą OpenToolsAPI
* Poznaj tajniki Windows 32 API i wykorzystaj je w swoich aplikacjach
Doświadczenie i bogata wiedza autorów „C++Builder 6. Vademecum profesjonalisty" to gwarancja rzetelności tej książki. Jeśli programujesz w C++ Builder, jest Ci ona po prostu niezbędna.
Similar to Pisząc kod natywny C/C++, czyli nie taki diabeł straszny (20)
6. Kod natywny nadal ważny
• Oprogramowanie jest coraz bardziej złożone
• Sprzęt jest coraz bardziej wydajny
6
7. Kod natywny nadal ważny
• Oprogramowanie jest coraz bardziej złożone
• Sprzęt jest coraz bardziej wydajny
Mimo tego kod natywny nadal ma znaczenie!
• Dlaczego?
7
9. Prawo Moore’a
• Częstotliwośd taktowania przestała wzrastad
wykładniczo
• Procesory są bardziej złożone, równoległe
Wydajnośd → inne podejście do programowania
9
13. Ekologia :)
My biggest contribution to the fight against global
warming is C++’s efficiency: Just think if Google had to
have twice as many server farms! Each uses as much
energy as a small town. And it’s not just a factor of two…
Efficiency is not just running fast or running bigger
programs, it’s also running using less resources.
(Bjarne Stroustrup)
13
14. Zastosowania
Zastosowania kodu natywnego
• Wydajnośd
– Szybkie przetwarzanie dużych ilości danych
– Pełna kontrola nad czasem wykonania
Systemy czasu rzeczywistego
Gry
Systemy operacyjne
Maszyny wirtualne
14
15. Zastosowania
Zastosowania kodu natywnego
• Wydajnośd
• Ograniczone zasoby
– Z góry określony sprzęt
– Wolny procesor, mało pamięci
Systemy wbudowane
Urządzenia mobilne
Konsole
15
17. W czym napisano...
• Korzystamy z:
– Języków skryptowych (np. Python)
– Języków opisu (np. XML)
– Baz danych (np. MySQL)
– Serwerów (np. Apache), frameworków, ...
• W czym napisano ich obsługę?
17
18. W czym napisano...
• Biblioteki często są napisane w C lub C++
• API dla Java, Python itp. jest tylko wrapperem
18
19. Rynek pracy
Programista C/C++: Branża
* Systemy biznesowe
* Branża finansowa
* Przetwarzanie i analiza danych
* Systemy wbudowane
* Telekomunikacja, np. sieci komórkowe
* CAD/CAM
* Grafika komputerowa
* Techniki telewizyjne
* Gry
Wniosek: Zagadnienia niskopoziomowe
• Bliżej danych, sprzętu
• Dalej od interfejsu użytkownika, stron WWW
19
20. Rynek pracy
Programista C/C++: Wymagania
Oraz oczywiście:
- Wykształcenie
- Język angielski
- Umiejętności miękkie
- Relokacja, wyjazdy
20
21. Zarządzanie pamięcią
• Wskaźniki, brak garbage collectora
– Trzeba samemu alokowad i zwalniad pamięd
– Błędy ochrony pamięci, wycieki pamięci
21
22. Zarządzanie pamięcią
• Wskaźniki, brak garbage collectora
– Trzeba samemu alokowad i zwalniad pamięd
– Błędy ochrony pamięci, wycieki pamięci
• Błędy w praktyce wcale nie tak częste
– Dobre praktyki, np. inicjalizacja zmiennych
– Przemyślany czas życia i własnośd obiektów
– Inteligentne wskaźniki
auto client = std::make_shared<CClient>(name, address, phone);
22
23. Zarządzanie pamięcią
• Wskaźniki, brak garbage collectora
– Trzeba samemu alokowad i zwalniad pamięd
– Błędy ochrony pamięci, wycieki pamięci
• Błędy w praktyce wcale nie tak częste
– Dobre praktyki, np. inicjalizacja zmiennych
– Przemyślany czas życia i własnośd obiektów
– Inteligentne wskaźniki
• W językach zarządzanych też są podobne
błędy
23
24. Programowanie obiektowe?
• Klasy reprezentują pojęcia z dziedziny
problemu
• Program składa się z powiązanych
obiektów
• Obiekty mają stan (pola)
• Obiekty przesyłają komunikaty (wywołują
metody)
• Enkapsulacja, dziedziczenie, polimorfizm
??
Warstwy abstrakcji, gettery, settery, wzorce
projektowe, singleton, wrapper, manager, hel
per, listener, observer, locker, *er...
24
26. Programowanie obiektowe?
Dla uzyskania maksymalnej wydajności:
• Myśled o ułożeniu danych w pamięci
– Wykorzystywad cache
• Przechowywad dane w tablicach
– Nie w małych, rozrzuconych po pamięci obiektach
DOD – Data-Oriented Design
• Lepsza wydajnośd
• Prostszy kod
• Łatwiejsze zrównoleglenie
26
27. Wady i zalety C++
C++ jest:
+ Kompatybilny z C
+ Silna, statyczna kontrola typów
+ Dużo jest sprawdzane na etapie kompilacji
+ Potężny, elastyczny
- Rozbudowany, trudny
- Jednych możliwości języka warto używad, innych lepiej
unikad
- Nie wszyscy używają biblioteki standardowej –
popularne są własne implementacje
stringów, kontenerów itd.
27
28. Wady i zalety C++
Szablony (templates), metaprogramowanie
+ Wydajnośd
+ Bezpieczeostwo
- Nieczytelne komunikaty błędów
- Niektórzy lubują się w wyszukanych konstrukcjach
std::vector<int> v;
Zaadoptowane w innych
językach: C#, Java
28
29. Wady i zalety C++
Przeciążanie operatorów
+ Pozwala zaimplementowad udogodnienia do
własnych typów (np. stringi)
std::string s2 = "ERROR" + s1;
(C++)
- Jednak nie wszystkie (np. matematyka
wektorowa)
color.rgb = param.yzw + 1.0.xxx;
(HLSL)
29
30. Wady i zalety C++
Biblioteki
- Uboga biblioteka standardowa (w porównaniu
np. z Python)
• Dostarcza kontenery, stringi, ...
• Rozwija się (C++11/14/17)
• Dodatkowo: Boost
+ Mnóstwo dostępnych bibliotek zewnętrznych
• XML – TinyXML
• JSON – JsonCpp
• itd...
30
31. Narzędzia
C/C++ to nie tylko konsola tekstowa i Vim/Emacs.
Istnieją różnorodne, wygodne narzędzia.
• IDE
– Edytor, kolorowanie składni
– Podpowiadanie, refractoring
– Zintegrowany debugger
Np. Visual C++ Express / Visual Studio
+ Visual AssistX
31
33. Przenośny kod
• Kod w C/C++ jest przenośny, o ile:
– Piszemy zgodnie ze standardem
– Używamy przenośnych bibliotek
• Wystarczy go przekompilowad
33
34. Podsumowanie
• C++ nie jest idealny, ma wiele wad
– Warto przeczytad „C++ FQA Lite”
• ale w wielu zastosowaniach to najlepszy lub
jedyny wybór
– Dostatecznie wysoki poziom, by pisad skomplikowane
programy (np. obiektowośd)
– Dostatecznie niski poziom, by pisad wydajny kod
(np. ręczne zarządzanie pamięcią)
– Dostępne kompilatory i biblioteki na wiele platform
34
35. Podsumowanie
Programowanie natywne nie jest takie trudne
• Ma swoje problemy,
• ale w programowaniu systemów biznesowych czy
webowych są inne zagadnienia, których
programista C++ może nie znad
Język programowania dobieramy do zastosowania
35