Dlaczego warto planować?

Opublikowano: - tagi:

Planowanie

Planowanie jest to czas który poświęcamy na określenie, co jest dla nas ważne. W sposób świadomy wskazujemy czym zamierzamy się zająć. Jeśli tego nie zrobimy zawsze pojawią się jakieś zapełniacze czasu. Mówiąc inaczej: istnieje duże ryzyko, że ten czas zmarnujemy.

Zauważyłem po sobie, że jeśli nie mam określonego planu działania, to często tracę czas na głupoty. Niby mam, w głowie mniej więcej co jest do zrobienia, ale odkładam to "na później". Mając określony rozkład jazdy wiem, w którym kierunku powinienem zmierzać.

Korzyści z planowania

Oto kilka korzyści z regularnego planowania:

1 Wiem, co mam do zrobienia - Określam swoje zadania i mogę skupić się na działaniu. Nie tracę czasu i energii na zastanawianie się, co jest do zrobienia, ponieważ wcześniej poświęciłem chwilę na planowanie.

2 Przybliża mnie do osiągnięcia celu - Jeśli Twój cel jest długo terminowy to planowanie sprawdzi się tym bardziej! Pod warunkiem, że planujesz regularnie. Jeśli cel jest duży, to podczas planowania rozbijasz go na mniejsze cele i krok po kroku dążysz do realizacji zadania.

3 Ty decydujesz - Nie polegasz na zasadzie: "jakoś to będzie" tylko sam nadajesz kierunek działania. Możesz wyznaczyć sobie cel, w jakim kierunku chciałbyś się rozwijać lub jakie nowe umiejętności zdobyć.

4 Ograniczasz marnowanie czasu - W planowaniu nie chodzi oto, żebyś wypełnił cały dzień zadaniami. Chociaż taka pokusa też istnieje! Sam przez to przechodziłem... Ale żebyś wyznaczył co jest dla Ciebie ważne. Można przez godzinę oglądać YouTube i nic Ci to nie da, albo zrobić coś pożytecznego. Wybór należy do Ciebie.

5 Pomaga w budowaniu dyscypliny - Jeśli planowanie zamienisz w nawyk, to na efekty nie będziesz musiał długo czekać. Ważna jest regularność.

Jak planować?

Planować można na różne okresy czasu: na jeden dzień, tydzień, miesiąc, a nawet rok. Chociaż jeśli nie masz wprawy, to radziłbym zacząć od planowania na każdy dzień.

Na początku każdego roku wyznaczam sobie cele na cały rok. Oczywiście wszystkiego nie przewidzę, coś może wypaść z mojego planu lub zostanie dodane. W każdym razie jeśli planuję cele długo terminowe to nie skupiam się na szczegółach po prostu określam ogólny cel, a później rozbijam na mniejsze zadania.

Jeśli planujesz zadania "na jutro" to polecam to robić wieczorem zauważyłem, że to najlepiej się sprawdza. Na pewo nie z rana wtedy gdy zwykle mamy najwięcej energii, ale decyzja należy do Ciebie.


Comics: Getting Things Done

Opublikowano: - tagi:

Webstorm: Nawigacja skróty klawiszowe

Opublikowano: - tagi:

Poniżej znajdziesz kilka skrótów klawiszowych w Webstorm na temat nawigacji:

Przejście do konkretnej linii kodu - CTRL + G

Przejście do konkretnego pliku - CTRL + SHIFT + N

Przejście do następnej zakładki - ALT + STRZAŁKA W PRAWO

Przejście do poprzedniej zakładki - ALT + STRZAŁKA W LEWO

Przejście do następnej metody - ALT + STRZAŁKA W GÓRĘ

Przejście do poprzedniej metody - ALT + STRZAŁKA W DÓŁ

Przejście do terminala/edytora - ALT + F12

Przejście do danej klasy - CTRL + N

Lista ostatnio przeglądanych plików - CTRL + E


Dlaczego warto wstawać wcześniej?

Opublikowano: - tagi:

Co słyszysz z samego rana po przebudzeniu? Ja odgłosy chyba z tysięcy ptaków, które z samego rana postanowiły wydać z siebie przeróżnego rodzaju dźwięki.

Wstawanie z rana to dla wielu ludzi temat kontrowersyjny. Niektórzy nie wyobrażają sobie wstać godzinę wcześniej jeśli nie jest to konieczne. Inni z kolei nie mają z tym problemu. Ja należę do tej drugiej grupy.

Poniżej opisuję dlaczego zdecydowałem się na wcześniejsze wstawanie. Podam kilka wskazówek jak możesz zacząć wstać z łóżka z samego rana.

Dlaczego?!

Wstawnie z rana jest trudne. Wcześniejsza pobudka tym bardziej... Jeśli chcemy zacząć dzień z samego rana warto mieć ważny powód.

Zastanów się czym mógłbyś się zająć po wyjściu z łóżka. Ważne żeby było to coś co sprawi Ci przyjemność, a nie zmuszanie siebie bo "coś muszę". To jest szczególnie ważne na początku, kiedy będziesz budować nawyk wcześniejszego wstawania.

Kiedyś budząc się wcześniej pracowałem nad swoimi projektami, ale teraz moje plany się zmieniły. Aktualnie przez pierwszą godzinę po przebudzeniu nie poświęcam czasu na pracę. Robię rzeczy, które sprawiają mi przyjemność jak na przykład:

1 Czytanie - 15 minut

2 Medytacja - 10 minut

3 Rysowanie - 15 minut

Dodatkowo mogę zacząć pracę wcześniej przez co wcześniej ją skończę.

Zauważyłem także, że moja praca z rana jest bardziej produktywna niż po południu więc udaje mi się zrobić więcej rzeczy. Choć zdaję sobie sprawę, że nie wszystkim taki tryb może odpowiadać. Niektórzy wolą pracować po nocach :)

Jak zacząłem wstawać wcześniej?

Miałem kilka prób zbudowania nawyku wstawania z rana. I przyznam szczerze, że odniosłem wiele porażek. Miałem nawet często pretensje do siebie, że nie wstałem wcześniej!

Jeśli decydujesz się na pobudkę z rana ustal o jakiej godzinie chcesz się obudzić. To pierwszy krok poniżej podaję listę co jeszcze będzie ważne:

1 Staraj się iść spać o podobnej godzinie.

2 Niech Twój budzik nie będzie w zasięgu ręki. Żeby go wyłączyć musisz wstać z łóżka.

3 Ustal plan, co zamierzasz robić po przebudzeniu. Dodatkowo określ ile czasu zamierzasz poświęcić na zaplanową czynność.

Czy zamierzam to kontynuować?

Patrząc, w przeszłość zauważyłem, że moje wstawanie z rana przebiegało falami. Przez jakiś czas wstawałem wcześniej, a potem znowu mi się nie udawało :)

Dzięki planowi opisanemu powyżej udało mi się ustabilizować sytuację. Czasami zdarza mi się, że pośpię dłużej, ale to świadoma decyzja.

Podsumowanie

Pobudka z rana to coś, co daje mi dużo energii na resztę dnia. Głównie poświęcam ten czas to co lubię robić. Jeśli się zastanawiasz nad tym to gorąco polecam. Może być ciężko na początku, ale jeśli uda Ci się zbudować nawyk to w przyszłości, to zaprocentuje.


Angular: Komponenty typu Smart i Dumb

Opublikowano: - tagi:

Nieważne jakiego frameworka używasz czy to Angulara, Reacta lub Vue, w każdym z nich istnieje coś takiego jak: komponent.

Komponenty służą nam do budowania naszej aplikacji. Komponent możemy porównać do klocka. Budujemy nasz program z klocków. Im mniejszy jest taki klocek tym łatwiej nim operować. Jeszcze lepiej jeśli dany klocek możemy użyć do budowy innych rzeczy, czyli mówimy, że taki klocek jest reużywalny.

Jak życie pokazuje nasze aplikacje się rozrastają, w szybkim tempie często kosztem jakości kodu.

Architektura komponentu typu Smart i Dumb może pomóc w łatwiejszym utrzymaniu kodu. W tym wpisie przykładowy kod napisany jest w Angularze, ale ten wzorzec może być używany także w innych frameworkach i nie tylko.

Poniżej znajdziesz przykład tego wzorca. Zanim zaczniemy stwórz komponent o nazwie: BookList. W katalogu tego komponentu stwórz plik o nazwie: book.model.ts:

export interface Book {
  id: number;
  title: string;
  author: string;
  isRead: boolean;
}

Komponent typu Dumb

Komponent typu Dumb nazywany też: komponentem prezentacji charakteryzuje się następującymi cechami:

1 Służy tylko do wyświetlania danych.

2 Nie ma logiki biznesowej. Tutaj chodzi oto, że ten komponent nie przetwarza danych. Po prostu pobiera dane i je wyświetla.

3 Nie posiada zależności na przykład z serwisami.

W Angluar dane do tego komponentu będziemy przekazywać za pomocą Input a wysyłać za pomocą Output.

Zawartość pliku: book-list.component.ts:

import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
import { Book } from "./book.model";

@Component({
  selector: 'app-book-list',
  templateUrl: './book-list.component.html',
  styleUrls: ['./book-list.component.scss']
})
export class BookListComponent implements OnInit {

  @Input()
  books: Book[] | undefined;

  @Output()
  bookReadEvent = new EventEmitter<Book>();

  constructor() { }

  ngOnInit(): void {
  }

  bookReadAction(book: Book): void {
    this.bookReadEvent.emit(book);
  }
}

Teraz widok: book-list.component.html:

<div *ngFor="let book of books">
  <strong>{{ book.title }}</strong> - {{ book.author }} <button [hidden]="book.isRead" (click)="bookReadAction(book)">Przeczytane</button>
</div>

Komponent typu Smart

Komponent typu Smart z kolei posłuży nam do ogarnięcia logiki biznesowej i przekazaniu danych do komponentu prezentacji:

1 Obsługuje logikę biznesową.

2 Przekazuje dane do komponentu prezentacji.

3 Może posiadać zależności do serwisów itp.

Stwórz plik o nazwie: book-list.container.component.ts:

import { Component, OnInit } from '@angular/core';
import { Book } from './book.model';

@Component({
  selector: 'app-book-list-container',
  templateUrl: './book-list.container.component.html',
})
export class BookListContainerComponent implements OnInit {

  books: Book[] | undefined;

  constructor() { }

  ngOnInit(): void {
    this.books = [
      { id: 1, title: 'Wojna futbolowa', author: 'Ryszard Kapuściński', isRead: false },
      { id: 2, title: 'Mroczna wieża tom 1', author: 'Stephen King', isRead: false },
      { id: 3, title: 'Czarnobylska modlitwa. Kronika przyszłości', author: 'Swietłana Aleksiejewicz', isRead: false },
    ]
  }

  bookReadEvent(bookRead: Book): void {
    if (this.books) {
      this.books = this.books.map((book: Book) => {
        if (book.id === bookRead.id) {
          bookRead.isRead = true;
        }
        return book;
      })
    }
  }

}

Za pomocą metody: bookReadEvent odbieramy zdarzenie wysłane z komponentu typu Dumb i przetwarzamy dane tutaj.

Potrzebny będzie jeszcze widok dla: book-list.container.component.html:

<app-book-list
  [books]="books"
  (bookReadEvent)="bookReadEvent($event)">
</app-book-list>

Na koniec musimy jeszcze gdzieś dodać odwołanie do komponentu Smart żeby go wyświetlić na przykład w app.component.html:

<app-book-list-container></app-book-list-container>

Podsumowanie

Na tym prostym przykładzie przedstawiłem na czym polega idea komponentów typu Smart i Dumb. Dzięki takiemu podziałowi oddzielamy od siebie dwie odpowiedzialności: przetwarzanie danych(Smart), wyświetlanie danych(Dumb).

Dodatkowo takie podejście zapewnia nam reużywalność komponentów typu Dumb ponieważ nie tworzymy tam niepotrzebnych zależności.