-
Biznes i ekonomia
- Bitcoin
- Bizneswoman
- Coaching
- Controlling
- E-biznes
- Ekonomia
- Finanse
- Giełda i inwestycje
- Kompetencje osobiste
- Komputer w biurze
- Komunikacja i negocjacje
- Mała firma
- Marketing
- Motywacja
- Multimedialne szkolenia
- Nieruchomości
- Perswazja i NLP
- Podatki
- Polityka społeczna
- Poradniki
- Prezentacje
- Przywództwo
- Public Relation
- Raporty, analizy
- Sekret
- Social Media
- Sprzedaż
- Start-up
- Twoja kariera
- Zarządzanie
- Zarządzanie projektami
- Zasoby ludzkie (HR)
-
Dla dzieci
-
Dla młodzieży
-
Edukacja
-
Encyklopedie, słowniki
-
E-prasa
-
Historia
-
Informatyka
- Aplikacje biurowe
- Aplikacje biznesowe
- Bazy danych
- Bioinformatyka
- Biznes IT
- CAD/CAM
- Digital Lifestyle
- DTP
- Elektronika
- Fotografia cyfrowa
- Grafika komputerowa
- Gry
- Hacking
- Hardware
- IT w ekonomii
- Pakiety naukowe
- Podręczniki szkolne
- Podstawy komputera
- Programowanie
- Programowanie mobilne
- Serwery internetowe
- Sieci komputerowe
- Start-up
- Systemy operacyjne
- Sztuczna inteligencja
- Technologia dla dzieci
- Webmasterstwo
-
Inne
-
Języki obce
-
Kultura i sztuka
-
Lektury szkolne
-
Literatura
- Antologie
- Ballada
- Dla dorosłych
- Dramat
- Dzienniki, pamiętniki, listy
- Epos, epopeja
- Esej
- Fantastyka i science-fiction
- Felietony
- Fikcja
- Humor, satyra
- Inne
- Klasyczna
- Kryminał
- Literatura faktu
- Literatura piękna
- Mity i legendy
- Nobliści
- Nowele
- Obyczajowa
- Okultyzm i magia
- Opowiadania
- Pamiętniki
- Podróże
- Poemat
- Poezja
- Polityka
- Popularnonaukowa
- Powieść
- Powieść historyczna
- Proza
- Przygodowa
- Publicystyka
- Reportaż
- Romans i literatura obyczajowa
- Sensacja
- Thriller, Horror
- Wywiady i wspomnienia
-
Nauki przyrodnicze
-
Nauki społeczne
-
Podręczniki szkolne
-
Popularnonaukowe i akademickie
- Archeologia
- Bibliotekoznawstwo
- Filmoznawstwo
- Filologia
- Filologia polska
- Filozofia
- Finanse i bankowość
- Geografia
- Gospodarka
- Handel. Gospodarka światowa
- Historia i archeologia
- Historia sztuki i architektury
- Kulturoznawstwo
- Lingwistyka
- Literaturoznawstwo
- Logistyka
- Matematyka
- Medycyna
- Nauki humanistyczne
- Pedagogika
- Pomoce naukowe
- Popularnonaukowa
- Pozostałe
- Psychologia
- Socjologia
- Teatrologia
- Teologia
- Teorie i nauki ekonomiczne
- Transport i spedycja
- Wychowanie fizyczne
- Zarządzanie i marketing
-
Poradniki
-
Poradniki do gier
-
Poradniki zawodowe i specjalistyczne
-
Prawo
- BHP
- Historia
- Kodeks drogowy. Prawo jazdy
- Nauki prawne
- Ochrona zdrowia
- Ogólne, kompendium wiedzy
- Podręczniki akademickie
- Pozostałe
- Prawo budowlane i lokalowe
- Prawo cywilne
- Prawo finansowe
- Prawo gospodarcze
- Prawo gospodarcze i handlowe
- Prawo karne
- Prawo karne. Przestępstwa karne. Kryminologia
- Prawo międzynarodowe
- Prawo międzynarodowe i zagraniczne
- Prawo ochrony zdrowia
- Prawo oświatowe
- Prawo podatkowe
- Prawo pracy i ubezpieczeń społecznych
- Prawo publiczne, konstytucyjne i administracyjne
- Prawo rodzinne i opiekuńcze
- Prawo rolne
- Prawo socjalne, prawo pracy
- Prawo Unii Europejskiej
- Przemysł
- Rolne i ochrona środowiska
- Słowniki i encyklopedie
- Zamówienia publiczne
- Zarządzanie
-
Przewodniki i podróże
- Afryka
- Albumy
- Ameryka Południowa
- Ameryka Środkowa i Północna
- Australia, Nowa Zelandia, Oceania
- Austria
- Azja
- Bałkany
- Bliski Wschód
- Bułgaria
- Chiny
- Chorwacja
- Czechy
- Egipt
- Europa
- Francja
- Góry
- Grecja
- Hiszpania
- Holandia
- Islandia
- Litwa
- Mapy, Plany miast, Atlasy
- Miniprzewodniki
- Niemcy
- Podróże aktywne
- Polska
- Portugalia
- Pozostałe
- Rosja
- Rumunia
- Słowacja
- Słowenia
- Szwecja
- Świat
- Turcja
- Ukraina
- Węgry
- Wielka Brytania
- Włochy
-
Psychologia
- Filozofie życiowe
- Komunikacja międzyludzka
- Mindfulness
- Ogólne
- Perswazja i NLP
- Psychologia akademicka
- Psychologia duszy i umysłu
- Psychologia pracy
- Relacje i związki
- Rodzicielstwo i psychologia dziecka
- Rozwiązywanie problemów
- Rozwój intelektualny
- Sekret
- Seksualność
- Uwodzenie
- Wygląd i wizerunek
- Życiowe filozofie
-
Religia
-
Sport, fitness, diety
-
Technika i mechanika
-
Biznes i ekonomia
- Bitcoin
- Bizneswoman
- Coaching
- E-biznes
- Ekonomia
- Finanse
- Giełda i inwestycje
- Kompetencje osobiste
- Komunikacja i negocjacje
- Mała firma
- Marketing
- Motywacja
- Nieruchomości
- Perswazja i NLP
- Poradniki
- Prezentacje
- Przywództwo
- Public Relation
- Sekret
- Social Media
- Sprzedaż
- Start-up
- Twoja kariera
- Zarządzanie
- Zarządzanie projektami
- Zasoby ludzkie (HR)
-
Dla dzieci
-
Dla młodzieży
-
Edukacja
-
Encyklopedie, słowniki
-
Historia
-
Informatyka
-
Inne
-
Języki obce
-
Kultura i sztuka
-
Lektury szkolne
-
Literatura
- Antologie
- Ballada
- Dla dorosłych
- Dramat
- Dzienniki, pamiętniki, listy
- Epos, epopeja
- Esej
- Fantastyka i science-fiction
- Felietony
- Fikcja
- Humor, satyra
- Inne
- Klasyczna
- Kryminał
- Literatura faktu
- Literatura piękna
- Nobliści
- Nowele
- Obyczajowa
- Opowiadania
- Pamiętniki
- Podróże
- Poezja
- Polityka
- Popularnonaukowa
- Powieść
- Powieść historyczna
- Proza
- Przygodowa
- Publicystyka
- Reportaż
- Romans i literatura obyczajowa
- Sensacja
- Thriller, Horror
- Wywiady i wspomnienia
-
Nauki przyrodnicze
-
Nauki społeczne
-
Popularnonaukowe i akademickie
-
Poradniki
-
Prawo
-
Przewodniki i podróże
-
Psychologia
- Filozofie życiowe
- Komunikacja międzyludzka
- Mindfulness
- Ogólne
- Perswazja i NLP
- Psychologia akademicka
- Psychologia duszy i umysłu
- Psychologia pracy
- Relacje i związki
- Rodzicielstwo i psychologia dziecka
- Rozwiązywanie problemów
- Rozwój intelektualny
- Sekret
- Seksualność
- Uwodzenie
- Wygląd i wizerunek
- Życiowe filozofie
-
Religia
-
Sport, fitness, diety
-
Bazy danych
-
Big Data
-
Biznes i ekonomia
-
Cyberbezpieczeństwo
-
Data Science
-
DevOps
-
Dla dzieci
-
Elektronika
-
Grafika/Wideo/CAX
-
Gry
-
Microsoft Office
-
Narzędzia programistyczne
-
Programowanie
-
Rozwój osobisty
-
Sieci komputerowe
-
Systemy operacyjne
-
Testowanie oprogramowania
-
Urządzenia mobilne
-
UX/UI
-
Web development
Crystal is a programming language with a concise and user-friendly syntax, along with a seamless system and a performant core, reaching C-like speed. This book will help you gain a deep understanding of the fundamental concepts of Crystal and show you how to apply them to create various types of applications.
This book comes packed with step-by-step explanations of essential concepts and practical examples. You'll learn how to use Crystal's features to create complex and organized projects relying on OOP and its most common design patterns. As you progress, you'll gain a solid understanding of both the basic and advanced features of Crystal. This will enable you to build any application, including command-line interface (CLI) programs and web applications using IOs, concurrency and C bindings, HTTP servers, and the JSON API.
By the end of this programming book, you'll be equipped with the skills you need to use Crystal programming for building and understanding any application you come across.
- Crystal Programming
- Contributors
- About the authors
- About the reviewer
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Share Your Thoughts
- Part 1: Getting Started
- Chapter 1: An Introduction to Crystal
- Technical requirements
- A bit of history
- Exploring Crystals expressiveness
- Crystal programs are also FAST
- A web server comparison
- Setting up the environment
- Creating our first program
- Creating an executable
- Summary
- Chapter 2: Basic Semantics and Features of Crystal
- Technical requirements
- Values and expressions
- Numbers
- The primitive constants true, false, and nil
- String and Char
- Ranges
- Enums and symbols
- Controlling the execution flow with conditionals
- if and unless
- case
- while and until loops
- Exploring the type system
- Experimenting with the crystal play command
- Organizing your code in methods
- Adding type restrictions
- Default values
- Named parameters
- External and internal names for parameters
- Passing blocks to methods
- Data containers
- Arrays and tuples
- Hash
- Iterating collections with blocks
- Short block syntax
- Splat parameters
- Organizing your code in files
- require "./filename"
- require "filename"
- Summary
- Further reading
- Chapter 3: Object-Oriented Programming
- Technical requirements
- The concept of objects and classes
- Creating your own classes
- Manipulating data using instance variables and methods
- Creating getters and setters
- Inheritance
- Polymorphism
- Abstract classes
- Class variables and class methods
- Working with modules
- Values and references using structs
- Generic classes
- Exceptions
- Custom exceptions
- Summary
- Part 2: Learning by Doing CLI
- Chapter 4: Exploring Crystal via Writing a Command-Line Interface
- Technical requirements
- Project introduction
- Scaffolding the project
- Writing the basic implementation
- Transforming the data
- Improving reusability
- Summary
- Chapter 5: Input/Output Operations
- Technical requirements
- Supporting terminal input/output
- Supporting other IO
- Performance testing
- Explaining IO behavior
- Summary
- Chapter 6: Concurrency
- Technical requirements
- Using fibers to complete work concurrently
- Using channels to communicate data safely
- Transforming multiple files concurrently
- Summary
- Chapter 7: C Interoperability
- Technical requirements
- Introducing C bindings
- Binding libnotify
- Testing the bindings
- Abstracting the bindings
- Integrating the bindings
- Summary
- Part 3: Learn by Doing Web Application
- Chapter 8: Using External Libraries
- Technical requirements
- Using Crystal Shards
- Shard dependencies on C code
- Updating Shards
- Checking dependencies
- Finding Shards
- Example scenario
- Summary
- Chapter 9: Creating a Web Application with Athena
- Technical requirements
- Understanding Athena's architecture
- Getting started with Athena
- The Article entity
- Returning an article
- Handling the request body
- Validation
- Implementing database interactions
- Setting up the database
- Persisting articles
- Fetching articles
- Updating an article
- Deleting an article
- Leveraging content negotiation
- Summary
- Further reading
- Part 4: Metaprogramming
- Chapter 10: Working with Macros
- Technical requirements
- Defining macros
- Fresh variables
- Non-macro definition macros
- Understanding the macro API
- Recreating the property macro
- Exploring macro hooks
- Summary
- Chapter 11: Introducing Annotations
- Technical requirements
- What are annotations?
- Storing data within annotations
- Reading annotations
- Summary
- Chapter 12: Leveraging Compile-Time Type Introspection
- Technical requirements
- Iterating type variables
- Iterating types
- Iterating a type's subclasses
- Iterating types with a specific annotation
- Iterating types that include a specific module
- Iterating methods
- Summary
- Further reading
- Chapter 13: Advanced Macro Usages
- Technical requirements
- Using annotations to influence runtime logic
- Exposing compile-time data at runtime
- Accessing the value
- Modeling an entire class
- Determining a constant's value at compile time
- Creating custom compile-time errors
- Restricting generic types
- Summary
- Part 5: Supporting Tools
- Chapter 14: Testing
- Technical requirements
- Why test?
- Unit testing
- Tagging tests
- Mocking
- Hooks
- Integration testing
- Summary
- Chapter 15: Documenting Code
- Technical requirements
- Documenting Crystal code
- Linking an API feature
- Formatting
- Documentation directives
- Ditto
- Nodoc
- Inherit
- Generating the documentation
- Hosting the documentation
- Documentation versioning
- Summary
- Chapter 16: Deploying Code
- Technical requirements
- Versioning your shard
- Creating production binaries
- Distributing your binary
- Via Docker
- Via package manager(s)
- Summary
- Further reading
- Chapter 17: Automation
- Technical requirements
- Formatting code
- Linting code
- Continuous integration with GitHub Actions
- Formatting, coding standards, and tests
- Deploying documentation
- Summary
- Appendix A: Tooling Setup
- Installing the Crystal compiler
- Installing the compiler on Windows
- Installing Visual Studio Code
- Installing the Crystal compiler
- Appendix B: The Future of Crystal
- Windows
- WebAssembly
- Multithreading
- Structured concurrency
- Incremental compilation and better tooling
- How to get in touch with the community
- Why subscribe?
- Other Books You May Enjoy
- Packt is searching for authors like you
- Share Your Thoughts
- Tytuły: Crystal Programming
- Autor: George Dietrich, Guilherme Bernal
- Tytuł oryginału: Crystal Programming
- ISBN Ebooka: 9781801816311, 9781801816311
- Data wydania: 2022-05-27
- Identyfikator pozycji: e_2t79
- Kategorie:
- Wydawca: Packt Publishing