Kategorie
100 days of code Programowanie python

100 days of code challenge- day6. Rozwiązanie probelmu i instalacją biblioteki, porządek w plikach, github i podstawowe komendy GITa

Cześć! Dziś relacja z dnia 5!
🕚🕚🕚
Dzisiejszy czas nauki = 2 godziny
Łączny czas nauki = 13 godzin

Jak zwykle na początku garstka linków:
Mój Instagram
Zaktualizowane notatki z nauki
Nowość! Mój github

Dziś sporą część dnia spędziłem na rozmowach na Instagramie. Czasu tych rozmów nie wliczam w czas nauki ale wspominam o tym z innego powodu. Chciałem bardzo podziękować za wsparcie mnie w ciężkich chwilach kiedy poległem przy instalacji i użyciu biblioteki. Poinformowałem o tym na Instagramie i już za kilka godzin miałem podpowiedź jak to zrobić oraz w czasie rozmów wyszło kilka dodatkowych rzeczy których miał się nauczyć które wydają się być bardzo ciekawe i użyteczne (wirtualne środowisko, dobre praktyki przy instalacji bibliotek, plik requirements.txt oraz GIT i github).

Dlatego od dziś na koniec każdego dnia będę commitował moje postępy i będą one dostępne na portalu github. Jeśli jest ktoś kto chciałby zrobić code review to też jak najbardziej zachęcam i podzielenie się opinią na Instagramie lub w komentarzu.

Tak więc wracając do wczorajszego problemu z instalacją i wykorzystaniem biblioteki- podaje rozwiązanie. Otóż w wysokopoziomowych IDE (jak mój pycharm) należy zainstalować biblioteki nie przez terminal Windowsa a przez terminal zawarty w tym IDE. I już 🤓 to rozwiązuje problem.
A dlaczego tak? Otwórz konto związek z tym że do każdego pliku.py tworzony jest również wirtualne środowisko i trzeba mu dodać dostęp do danej biblioteki. Najwyraźniej poprzez instalacje przez terminal Windows dane środowisko wirtualne nie otrzymuje dostępu do takiej biblioteki.

napisałem też fragment kodu który ma za zadanie rozpoznać wszystkie znaczniki linków na stronie internetowej i wypisać je- każdy od nowej linii

from bs4 import BeautifulSoup
import urllib.request, urllib.parse, urllib.error
import ssl

# ignore ssl certificate errors
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

url = input("Insert url: ")
if len(url) < 1:
url = "https://www.google.com/"
html = urllib.request.urlopen(url, context=ctx).read()
soup = BeautifulSoup(html, "html.parser")

# retrieve all of the anchor tags
tags = soup("a")
for tag in tags:
print(tag.get("href", None))

Do tego na instagramie jedna z osób podzieliła się super metodą na zawarcie niezbędnych bibliotek w swoim projekcie- otóz gdy napiszemy aplikacje w terminalu naszego IDE możemy użyć formuły „pip freeze > requirements.txt”, która w folderze z projektem stworzy nam dokument tekstowy z wszystkimi niezbędnymi do działania projektu bibliotekami.
A żeby te biblioteki zainstalować jedną linijką, należy w termnialu IDE wpisać komendę „pip install -r requirements.txt”

dodatkowo dzisiaj także spędziłem trochę czasu na czytaniu artykułów i znalazłem dwa ciekawe tematy:

OOP ten temat wydaje mi się jeszcze dość abstrakcyjny ale z tego co zrozumiałem to chodzi o to by programować takie gotowe elementy bloki kodu które potem mogą być reużywane. Coś na zasadzie dzieli (na małe kawałki) i rządź (władaj). System ten jest oparty na czterech filarach:

abstrakcja- kodowy finalny element ma być intuicyjny w używaniu, a kod za to odpowiadzialny ma być schowany wewnątrz i być dla nas nie jako nieistotny.

Kapsułkowość(encapsulation) – chodzi o to by zmienne zawarte w danym w bloku kodu był dostępny tylko w obszarze danej funkcjonalności i niedostępne globalnie.

dziedziczenie- sama nazwa jesteś intuicyjna. Chodzi o to by dzieci danego bloku dziedziczyły funkcjonalność po „starszym” bloku kodu (ale mogą mieć dodaną nowa, bardziej szczegółową funkcjonalność)

Polimorfizm – jest to część dla mnie najmniej zrozumiała. Jednak o ile dobrze zrozumiałem to chodzi o to by móc wykorzystywać dany blok kodu dojść elastycznie w różnych sytuacjach

TTD. Chodzi tutaj o to, by zanim zacząć pisać kod napisać testy do tego kodu, które mają pokrywać wymagania naszego kodu. I po stworzeniu takiego takich testów zacząć pisać kod który zda te wszystkie testy. Kiedy już nam się to uda i wszystko działa Jest to czas by poprawić wcześniej napisany kod tak aby testy dalej i świeciły się na zielono.

W tym wpisie byłoby to wszystko. Dziękuję jeszcze raz za twoją obecność tutaj. Zapraszam Cię raz jeszcze na mój instagram. I życzę ci powodzenia w twoich projektach.
May the code be with you 🥳

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *