Notes from 2022 Indy.Code()
Programmer = boolean & string
type Person = Programmer | Tester
Common Use Case:
- Dealing with Errors
export type Grade = "A" | "B" | "C"
type GradeModifiers = "+" | "" | "-"
export type expandedGrades = `${Grade}${GradeModifiers}`
- Allows me to modified other types
- Handy for staying in sink with a changing dataset
- A lot of things you can do but shouldn't
- Code: https://github.com/pottereric/Typescriptbeyondthebasics
- Eric: https://humbletoolsmith.com/
EDA = event-driven architecture
- Multiple subsystems
- Real-time Processing
- Complex Event Processing
- High Volumne/Veloity Data
- Decoupling
- Encapsulation
- Responsive
- Scalable/Distributed
- Independence
- Steep learning curve
- Complexity
- Guaranteed Delivery (if you one of your subscribers goes down you aren't going to receive it)
- Sequencing
- Azure Event Hubs
1] works well with Kafka
2] Partitions
3] Throughput units
- Azure Service Bus
1) Purity/Controlling side-effects
2) Favor expressions over statements
3) Functions as Data
- Immutable.js
- Object.freeze()
- Defineproperty
- Arrow functions
- Functions as data
- learn about reduce
- Currying
PFA - Partial Function Addition
-
- Contact free extension point
-
Edimology of Humility - grounded (*)
List of Cognitive biases: https://en.wikipedia.org/wiki/List_of_cognitive_biases
- Better testing
- Better code reviews
- Asking for help appropriately
- better naming and documentation
- Use of better solutions
- Use of better methods
- Use of better architectures
- Lifelong learning
- Asking better questions
- Dunning-Kruger Effect
- Book: The Programmer's Brain by Felienne Hermans
- (Book Link)[https://www.amazon.com/Programmers-Brain-every-programmer-cognition/dp/1617298670/ref=sr_1_1?crid=2E5SPCV7EITPW&keywords=the+programmers+brain&qid=1666197734&qu=eyJxc2MiOiIxLjg3IiwicXNhIjoiMS43NCIsInFzcCI6IjEuODUifQ%3D%3D&sprefix=the+programmers%2Caps%2C159&sr=8-1]
- The Magic Number Seven, Plus or Minues Two ( by George A Miller)
- Thinnk about this as far as refactoring and chunking into smaller chunks... aka reorganizing into smaller units
- The Checklist Manifesto by Atul Gawande
- https://www.amazon.com/Checklist-Manifesto-How-Things-Right-ebook/dp/B0030V0PEW/ref=sr_1_1?crid=290RQRELQNGAM&keywords=the+checklist+manifesto&qid=1666197957&qu=eyJxc2MiOiIxLjgyIiwicXNhIjoiMS4zMyIsInFzcCI6IjEuNDEifQ%3D%3D&sprefix=The+Checklist+%2Caps%2C186&sr=8-1
- Humility is the New Smart by Edward D Hess & Katherine Ludwig
- Be in the the rethinking cycle versus the overconfident cycle
- "Humility is not thinking less of yoruself, but thinking of yourself less"
- Teammates
- Users
-
Help our users:
- Work faster
- Know more
- Programming about programming/code about code
- 3 Categories:
1) Code generatin
2) Reflection
3) Intercession
- Consider lodash for type detection
const myObject = {
firstName: "Austin",
lastName: "Bearden"
}
Reflect.has(myObject, "age"); // false
Reflect.defineProperty(
myObject,
"age",
{
configurable: true,
enumerable: true,
writable: true,
value: 42
}
); // true
- Reflect will return whether or not the defineProperty was successful for onot
- Object will return the object
-
Kinda like an OOO Interface
-
Guaranteed conflict free
Defining symbols
// no label const greet = Symbol("greet")
To-do: interact with a website with black screen and only use screen reader as a blind person
To-do: watch a video or sit in session where a blind person is using screen reader on website
Tools:
- blind
- only keyboard interaction
- Color blindness
Section 508:
Anyone who touches frontend code is responsible to make accessable
Companies to solve Accessability:
- Level access
- Web AIM - group of people who are accessability advocites
LIT - Google library: https://lit.dev/
Template literals
Tagged template literals
-- Look up the html <slot></slot>
element
1) Header -
2) Payload - The Claims of information of the JSON obbject
3) Signature - A cryptographic signature to validate the integrity of the payload
- session is only stored on one tab
- local is across tabs
- If multiple tabs required do local storage
- Either way use refresh tokens so JWt isn't just sitting there exposed
- If we are not logged in, don't store it in session storage
(consider this for PMI authentication implementation)