Advanced Search
Search Results
145 total results found
Securing an Angular Application
Security is constantly evolving. You'll need to do your own research on the specific vulnerabilities of your application. However, the following explains fundamental security services provided by Angular. Before we move on understand the difference between the...
Connecting to a REST Endpoint
Choosing a Backend The default data format is JSON, which can be used with pretty much any backend. Java Spring uses JSON by default Python Flask can be configured for JSON with the Flask-JSON library The api needs to return a text JSON data via HTTP GET f...
Forms
So far we've only looked at static website design and reading data. Forms allow users to input data. There are two different ways to do forms in Angular Template-driven and Reactive. Also here's a cheatsheet on types of databinding in Angular, which i will go ...
Building a Site
Bootstrap One of the most useful tools for front end design is Bootstrap. It can be installed with: npm install bootstrap jquery popper.js The file Angular.json contains where to find certain elements of the application, such as the Bootstrap file. For examp...
Debugging and Testing
Note for full Intellij debug compatabillity you must use Google Chrome. It's also sort of a hassle to configure linux for tests the first time; ensure CHROME_BIN env variable is set to chromium, or add a firefox config to Karma.js Debugging (In Intellij) You ...
TypeScript
Intro to TypeScript TypeScript is a superset of JavaScript with added features Java Devs will recongnize TS Data Types (primative types are lower case) number - equivalent to a Java double, this is used to decalare any type of number boolean - same as Java ...
Angular Architecture
An Angular Component can be thought of as part of a web page It's a combination of HTML and code, although it could consist of only one Generally it's a piece of display with functionality We can then reuse components, such as a menu component, across the ...
What is Angular?
How Angular Differs from Traditional Websites Traditional Websites Angular Traditional Websites have a browser request an HTML page from a website from a server Angular applications are designed to send the entire site upon request, so there are no furt...
Ktor Basics
Ktor is a Kotlin based asynchronous web framework. Backends need to be versatile and scalable. Developers should have a 'microservice mindset' to create more maintainable backend services. Why Ktor Kotlin based - concise and fun language to use Lightweight - ...
Ktor Architecture & Lifecycle
Architecture EngineMain Class Used to run the application Loads application.conf file Supported Engines: CIO: io.ktor.server.cio.EngineMain.main Jetty: io.ktor.server.jetty.EngineMain.main Netty: io.ktor.server.netty.EngineMain.main Tomcat: io.ktor.server....
Kotlin Basics
Kotlin Class Extensions Extends the functionality of an existing class fun Int.addFive() : Int { return this + 5 } Does not actaully change the code of the class Provides a function that can be called on instances of the class When are Class Extension...
Ktor REST API
REST - Respresentational State Transfer The path (URL) is the route to a resource A resource is any kind of logical object in the business model HTTP is most often used as transport protocol GET - retrieve data PUT - create or update an object POST - submit ...
Ktor Authentication and Authorization
So to retain the client information after login we have two options: Create a server-side session. Store the session in a Json token on the Client side With server-side sessions, you will either have to store the session identifier in a database, or else kee...
Signing JSON Tokens with RSA
RS256 vs HS256 When signing a JSON Web Token (JWT) from the server, two algorithms are supported for signing JSON Web Tokens (JWTs): RS256 and HS256. HS256 is the default for clients and RS256 is the default for APIs. When building applications, it is importan...
Testing Code
Terminology Test Fixture - A fixed state of a set of objects used as a baseline for running tests. There should be a well known and fixed environment in which tests are run so that the results are repeatable. Unit Tests / Unit Testing - Code written to test c...
Best Coding Practice
Naming Interfaces Should be a good Object Name Never start with an 'i' (This is a dot net thing) Implementation With only 1 implementation: user + Impl With more than one the name should indicate the difference of implementation SOLID Principals Sing...
Spring Bean Life Cycle
When the class is created we can see there are 'Aware' interfaces that get inialized BeanNameAware BeanFactoryAware ApplicationContextAware Shutdown Container Shutdown -> Disponable Bean's destroy() -> Call custom destroy method -> Terminated Callback ...
Dependency Injection and IoC
Dependency Injection How objects obtain dependent objects The class being injected has no responsibillity in instantiating the object being injected Key Theme: Avoid Tight Coupling Types of Dependency Injection: By class properties - not reccommended By Sette...
Spring Configuration and StereoTypes
Spring Configuration Options XML Based Configuration Introduced in Spring Framework 2.0 Still supported in Spring 5.x Common in legacy applications Annotation Based Configuration Introduced in Spring 3.0 Picked up via 'Component Scans' Refers to class lev...
Reactive Programming
Reactive programming focuses on non-blocking, asynchronous execution The Reactive Manifesto Responsive The System responds in a timely manner Responsiveness is the cornerstone of usability and utility Reponsiveness also means problems may be detected quickly ...