GithubHelp home page GithubHelp logo

learning-tracking's Introduction

learning-tracking's People

Contributors

fmontes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

learning-tracking's Issues

NgRx — Best Practices for Enterprise Angular Applications

https://itnext.io/ngrx-best-practices-for-enterprise-angular-applications-6f00bcdf36d7?fbclid=IwAR22y3d1ujpkikLi02CBpXNXbwJ0XM1jSfTIZyDz7tWYGqoStnUGfeq7vj8

Root Store Module

NgModule’s that bundle together NgRx store logic.

Feature Store Module

NgModule’s that bundle together feature slices of your store, including state, actions, reducer, selectors, and effects.

NgRx Entity

Depending on the type of feature you are creating.

Recommend Structure

├── app
 │ ├── app-routing.module.ts
 │ ├── app.component.css
 │ ├── app.component.html
 │ ├── app.component.ts
 │ ├── app.module.ts
 │ ├── components
 │ ├── containers
 │ │    └── my-feature
 │ │         ├── my-feature.component.css
 │ │         ├── my-feature.component.html
 │ │         └── my-feature.component.ts
 │ ├── models
 │ │    ├── index.ts
 │ │    └── my-model.ts
 │ │    └── user.ts
 │ ├── root-store
 │ │    ├── index.ts
 │ │    ├── root-store.module.ts
 │ │    ├── selectors.ts
 │ │    ├── state.ts
 │ │    └── my-feature-store
 │ │    |    ├── actions.ts
 │ │    |    ├── effects.ts
 │ │    |    ├── index.ts
 │ │    |    ├── reducer.ts
 │ │    |    ├── selectors.ts
 │ │    |    ├── state.ts
 │ │    |    └── my-feature-store.module.ts
 │ │    └── my-other-feature-store
 │ │         ├── actions.ts
 │ │         ├── effects.ts
 │ │         ├── index.ts
 │ │         ├── reducer.ts
 │ │         ├── selectors.ts
 │ │         ├── state.ts
 │ │         └── my-other-feature-store.module.ts
 │ └── services
 │      └── data.service.ts
 ├── assets
 ├── browserslist
 ├── environments
 │ ├── environment.prod.ts
 │ └── environment.ts
 ├── index.html
 ├── main.ts
 ├── polyfills.ts
 ├── styles.css
 ├── test.ts
 ├── tsconfig.app.json
 ├── tsconfig.spec.json
 └── tslint.json

[Video]: Portafolio vs. Currículum | Cómo hacer un CV y un portafolio impactante

https://www.youtube.com/watch?v=PXuxjEest1Y

  1. Define objectives, what roles are you applying?
  2. Define the medium, so how do you want to present your work? is a web? could be a PDF or a blog... depends.
  3. Plan (mock) your idea: who are you? what you do? base on your objectives you can define what you want to show.
  4. Talk about you: who are you, what you doing, what are your aptitude and where do you want to go?
  5. Show your work
    • If you're a dev: tell the story, not only the code and the UI, tell how you build it, team work?, what did you learn?...
  6. Keep it updated

Resources

https://www.bestfolios.com/

Spectator for Angular or: How I Learned to Stop Worrying and Love the Spec

Spectator help you to get rid off all the Angular testing boilerplate.

What happened to the Testbed? The Fixture? The answer is Spectator handles all of those behind the scenes so that you don’t have to

https://engineering.datorama.com/spectator-for-angular-or-how-i-learned-to-stop-worrying-and-love-the-spec-2aa8521c8488

Testing a component

image

What I like

  1. Easier to create host test components
  2. Easier to mock dependency services
  3. Way less boilerplate
  4. Super clear API.

Constructable Stylesheets: seamless reusable styles

https://developers.google.com/web/updates/2019/02/constructable-stylesheets

Constructable Stylesheets are a new way to create and distribute reusable styles when using Shadow DOM.

const sheet = new CSSStyleSheet();

// replace all styles synchronously:
sheet.replaceSync('a { color: red; }');

// this throws an exception:
try {
  sheet.replaceSync('@import url("styles.css")');
} catch (err) {
  console.error(err); // imports are not allowed
}

// replace all styles, allowing external resources:
sheet.replace('@import url("styles.css")')
  .then(sheet => {
    console.log('Styles loaded successfully');
  })
  .catch(err => {
    console.error('Failed to load:', err);
  });

Javascript Event Loop

Javascript Event Loop

As reminder

Javascript is single threaded and async

Event loop

It only job is to move the first function from the task queue to the call stack.

Callstack

Is a data structure that record where in the program we are.

screen shot 2019-01-06 at 9 04 05 pm

S.O.L.I.D. Principles of Object-Oriented Design

S.O.L.I.D. Principles of Object-Oriented Design

  • Set of guidelines by Robert C. Martin AKA Uncle Bob
  • Helps you oriented your code towards future use, not just immediate needs
  • Modular, flexible and independent code :)

Why?

  1. Too much dependency (spaghetti code)
  2. Rigidity: changes affects other parts
  3. Fragility: breaks in unrelated places
  4. Immobility: can’t reuse code outside the original context

S - Single responsibility

  • A class should have only one reason to change
  • Doesn’t mean have to be one function
  • If part needs to change for different reasons maybe need to refactor

O - Open-closed

  • Be able to extend a class without modifying.

L - Liskov substitution

  • Derived classes must be substituable for their base classes

I - Interface segregation

  • Make fine-grained interfaces with specific methods

D - Dependency inversion

  • Depend on abstractions, not on concretions
  • Take advantage of interfaces
  • If you’re creating and instance of a class inside of another maybe you need to rethink this, or pass the instance into

5 Ways to Convert React Class Components to Functional Components w/ React Hooks

https://scotch.io/tutorials/5-ways-to-convert-react-class-components-to-functional-components-w-react-hooks

useEffect() hook

(...) We've achieved exactly the same functionailty using the useEffect() Hook. It's even better or cleaner as some would say because here, we didn't have to write separate codes for componentDidMount() and componentDidUpdate(). With the useEffect() Hook, we are able to achieve both functions. This is because by default, useEffect() runs both after the initial render and after every subsequent update.

PureComponent

(...) only re-renders when there's a change in state or props.

React.memo()

const Unstable = React.memo(function Unstable (props) {
  console.log(" Rendered Unstable component ");
  return <div>{props.val} </div>;
});

This achieves the same result as PureComponent did. Hence, the component only renders after the initial render and doesn't re-render again until there's a change in state or props.

How prepare my first talk

https://medium.com/@chang_yan/how-i-prepared-my-first-tech-talk-b8a0b27b8dd1

  • Recap before going to the next topic
  • Audience feels their climbing upstairs
  • Tell people what your doing
  • You think about all day and ideas comes at some point
  • Write down ideas right away
  • Pay attention to way we phrase things
  • Don’t asume people will understand you talk the same way you think your are talking
  • Try runs with friends, give you more accurate feedback
  • Talk in your mind vs out loud is super different
  • Record yourself
  • Practice, practice, practice

Ask your self

  • is too broad?
  • too many much topics?
  • did you put too much information in one slide?

vitejs -

https://vitejs.dev/

Vite (French word for "fast", pronounced /vit/) is a new breed of frontend build tool that significantly improves the frontend development experience. It consists of two major parts:

A dev server that serves your source files over native ES modules, with rich built-in features and astonishingly fast Hot Module Replacement (HMR).

A build command that bundles your code with Rollup, pre-configured to output highly optimized static assets for production.

What are the differences between unit test, integration test and end to end test in automated testing?

https://www.quora.com/What-are-the-differences-between-unit-test-integration-test-and-end-to-end-test-in-automated-testing

Chuck Cobb, Agile Project Mgt Author and Instructor (Over 50K Students)
Answered Nov 22, 2018 · Author has 5.6k answers and 1.4m answer views

Unit testing

Is normally the lowest level of testing and typically tests an individual module of software to ensure that it performs as expected for a selected range of inputs and outputs.

Integration testing

Tests that modules that are expected to interoperate with each other work together as expected. It normally does not include testing of the user interface.

End-to-end testing

Tests the complete functionality of the entire system including the UI.

ES6 Modules in Depth

https://ponyfoo.com/articles/es6-modules-in-depth

An important point to make is that ES6 modules export bindings, not values or references.

I’d encourage you to use export default – and to do that at the end of your module files.

  • One, the exported interface of a module becomes immediately obvious. Instead of having to crawl around the module and put the pieces together to figure out the API, you just scroll to the end.

  • Two, you don’t introduce confusion as to whether export default or a named export.

  • Three, The export default approach is more versatile because it allows you to export just one thing.

  • Four, – and this is really a reduction of points made earlier – the export default statement at the bottom of a module makes it immediately obvious what the exported API is, what its methods are, and generally easy for the module’s consumer to import its API.

[Podcast] Web Performance - Chugging our drinks down fast

https://frontendhappyhour.com/episodes/web-performance-chugging-our-drinks-down-fast/

  1. You never end improving performance
  2. If the app is slow the devs and or brand are lazy 😂
  3. Performance is an after thought, devs only worried when problem happen, we need to switch.
  4. Think about it from start
  5. Performance is incorporated in the design, if you need to load something heavy, use loading indicators or something in the UI to indicate what happening
  6. "Feels slow" is not specific, you need to measure, time to interact is a nice feature to measure

Recommendations

  1. React profiler

Enhancing User Experience With CSS Animations

https://stephaniewalter.design/blog/enhancing-user-experience-with-css-animations/

Keep it Simple

  • Does it distract my users from accomplishing their tasks?
  • If there’s a risk of distraction, maybe adding a kill switch would help?

Keep it Short

  • Does it annoy my user?
  • Does it respond well?
  • Is it too long
  • Don’t make user wait for your animation to end be able to accomplish their tasks

Keep it Meaningful

  • Does it provide useful information and adds value to the interface ?
  • Does the animation serve a purpose or is it just annoying eye candy?
  • Make the animation fit the whole message : playful animations are cool on games, but not on sleek sophisticated serious sites

Give user control

  • Can my user turn off/ pause animations?
  • Even better: can they chose to turn them on?

Test it

  1. with different devices
  2. with different browser conditions,
  3. on different network conditions
  4. with different users
  5. with different users who have different types of disabilities

7 Angular Tools That You Should Consider

https://blog.mgechev.com/2017/04/23/angular-tooling-codelyzer-angular-cli-ngrev/

Need to try:

  1. ngrev: Graphical tool for reverse engineering of Angular projects. It allows you to navigate in the structure of your application and observe the relationship between the different modules, providers, and directives. The tool performs static code analysis which means that you don't have to run your application in order to use it.

  2. Compodoc: documentation for angular projects

Web Performance Checklist

Web Performance Checklist

Quick wins

  1. Measure the real world experience and set appropriate goals. A good goal to aim for is First Meaningful Paint < 1 s, a SpeedIndex value < 1250, Time to Interactive < 5s on slow 3G, for repeat visits, TTI < 2s. Optimize for start rendering time and time-to-interactive.
  2. Prepare critical CSS for your main templates, and include it in the <head> of the page. (Your budget is 14 KB). For CSS/JS, operate within a critical file size budget of max. 170KB gzipped (0.7MB decompressed).
  3. Trim, optimize, defer and lazy-load as many scripts as possible, check lightweight alternatives and limit the impact of third-party scripts.
  4. Serve legacy code only to legacy browsers with <script type=“module">.
  5. Experiment with regrouping your CSS rules and test in-body CSS.
  6. Add resource hints to speed up delivery with faster dns-lookup, preconnect, prefetch and preload.
  7. Subset web fonts and load them asynchronously, and utilize font-display in CSS for fast first rendering.
  8. Optimize images, and consider using WebP for critical pages (such as landing pages).
  9. Check that HTTP cache headers and security headers are set properly.
  10. Enable Brotli or Zopfli compression on the server. (If that’s not possible, don’t forget to enable Gzip compression.)
  11. If HTTP/2 is available, enable HPACK compression, and start monitoring mixed-content warnings. Enable OCSP stapling.
  12. If possible, cache assets such as fonts, styles, JavaScript and images in a service worker cache.

Tailwind builder

This is pretty cool.

I like the sidebar to add content and the focus when you editing the content.

Screen.Recording.2021-02-17.at.12.23.49.PM.mov

Screen.Recording.2021-02-17.at.12.25.16.PM.mov

https://devdojo.com/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.