paint-brush
Дилеммаи Frameworksаз ҷониби@luminousmen
Таърихи нав

Дилеммаи Frameworks

аз ҷониби luminousmen7m2024/09/26
Read on Terminal Reader

Хеле дароз; Хондан

Ҳамчун як таҳиягар, чаҳорчӯбаҳо одатан аввалин чизест, ки шумо мехоҳед корҳоро суръат бахшед ва чизҳоро боэътимод нигоҳ доред.
featured image - Дилеммаи Frameworks
luminousmen HackerNoon profile picture

Ҳамчун як таҳиягар, чаҳорчӯбаҳо одатан аввалин чизест, ки шумо мехоҳед корҳоро суръат бахшед ва чизҳоро боэътимод нигоҳ доред. Одамон аксар вақт дар бораи чаҳорчӯбаҳо сӯҳбат мекунанд, ки онҳо як роҳи беҳтаринест, ки метавонад ҳамаи мушкилоти шуморо ҳал кунад ва рушдро тезтар, осонтар ва муассиртар кунад. Аммо, агар шумо каме таҷриба дошта бошед, шумо медонед, ки чаҳорчӯбаҳо як ҳалли ягона нестанд. Интихоби дуруст метавонад кори шуморо осон кунад, аммо интихоби нодуруст метавонад ба дарди сари роҳ оварда расонад ва танҳо вақте ки шумо бояд зуд ҳаракат кунед, шуморо суст мекунад.


Дар ин паёми блог, мо ба мушкилот ва стратегияҳои воқеие, ки бо интихоб ва истифодаи чаҳорчӯба меоянд, ғарқ мешавем. Мо ба домҳои эҳтимолӣ, чӣ гуна пешгирӣ кардани онҳо ва роҳҳои чандир нигоҳ доштани пойгоҳи коди худ - ҳатто вақте ки чаҳорчӯба дар бозӣ аст, дида мебароем.

Муносибатҳое, ки шумо намедонистед, ки шумо ба он дохил мешавед

Ухдадор шудан ба як чаҳорчӯба каме монанди ворид шудан ба муносибатҳои дарозмуддат аст. Ва он чизе нест, ки сабукфикрона қабул кард. Баръакси китобхонаи оддӣ ё утилитаи хурд, чаҳорчӯбаҳо бо андешаҳо меоянд - бисёре аз онҳо. Онҳо сохтор ва методологияро ба аризаи шумо бор мекунанд, новобаста аз он ки шумо мехоҳед ё не.


Ухдадории дарозмуддати чорчубахо


Дар хотир доштан муҳим аст, ки эҷодкорони чаҳорчӯба афзалиятҳои худро доранд. Онҳо мушкилоти худро ҳал мекунанд, на мушкилоти шуморо. Онҳо аз шумо чизе қарздор нестанд (агар, албатта, шумо дар гурӯҳи чаҳорчӯбаи дохилӣ дӯст надошта бошед, дар ин ҳолат, хушбахтона шумо). Агар корҳо ба ҷануб равад, махсусан дар лоиҳаи шумо, шумо метавонед дар як ҷаҳони зарардида бошед. Ҳоло шумо дар ислоҳ кардани он часпидаед, ё бадтараш, онро комилан канда мекунед.


шавқовар нест, дуруст?


Пас, пеш аз он ки худро ба чаҳорчӯба пайваст кунед, боварӣ ҳосил кунед, ки он воқеан ба он чизе, ки ба шумо лозим аст, мувофиқ аст. Дар акси ҳол, шумо зарро мепечонед.

Проблемаҳои FAANG

Муаллиф намедонад, ки оё FAANG MAANG, MANGA шуд ё ҳоло ҳама дар як аниме ҳастем.

Дар ин ҷо таҷриба воқеан муҳим аст. Вақте ки ширкатҳо босуръат рушд мекунанд, онҳо аксар вақт бо мушкилоте рӯ ба рӯ мешаванд, ки ҳеҷ гуна ҳалли омодагӣ наметавонад онҳоро ҳал кунад. Миқёси ин мушкилот онҳоро маҷбур мекунад, ки асбобҳои худро эҷод кунанд - пойгоҳи додаҳои фармоишӣ, муҳаррикҳои ETL, абзорҳои BI - шумо онро номбар кунед. Бузургҷуссаҳои бузурги технологӣ ба монанди Google, LinkedIn, Spotify ва Netflix роҳеро пеш бурданд, асбобҳои сохтан ва кушодаасосро доранд, ки ҳоло боқимондаи мо бо онҳо бозӣ мекунанд.


Аммо ин аст, ки ин асбобҳо сохта нашудаанд, ки дар ҳама ҷо татбиқ карда шаванд. Онҳо барои ҳалли мушкилоти мушаххасе сохта шудаанд, ки аксари ширкатҳо ҳеҷ гоҳ дучор намешаванд. Муҳандисоне, ки дар ин ширкатҳои бузург кор кардаанд, барои мубориза бо ин гуна мушкилот одат кардаанд - онҳо қарорҳое сохтаанд, ки дар миқёси аксари мо танҳо тасаввур карда метавонанд. Ҳамин тавр, вақте ки онҳо ба ширкатҳои хурдтар мегузаранд, чаҳорчӯба ва қарорҳои асбобҳои онҳо ба фаҳмиши амиқи ҳам қудрат ва ҳам домҳои ин технологияҳо асос меёбад.

Бозгашт бар зидди чаҳорчӯбаҳо

Вақтҳои охир, як каме исён ба вуҷуд омад - одамон аз чаҳорчӯбаҳо хаста мешаванд. Хусусан дар ҷаҳони JavaScript, таҳиягарон аз пошхӯрии доимӣ сер шудаанд. Эҳтимол шумо онро дидаед: ҳар дафъае, ки навсозии асосӣ фурӯхта мешавад, шумо бояд қисмҳои муҳими пойгоҳи коди худро аз нав нависед, то мувофиқат кунед. Ва маро ба давраи беохири шикастани тағйирот оғоз накунед.


Ин ноумедӣ боиси эҳёи стекҳои соддатар ва устувортар гардид. Маводҳо ба монанди ванилин HTML, CSS, jQuery, PHP ва SQLite дар байни таҳиягарон, ки иҷрои корҳоро аз мондан дар канори хунравии технология авлавият медиҳанд, бармегарданд. Бале, он метавонад каме "мактаби кӯҳна" бошад, аммо он аз кӯҳнашуда дур нест. Бо стек соддатар, шумо метавонед зуд такрор кунед ва ҳатто зудтар интиқол диҳед. Албатта, чаҳорчӯбаҳои навтар ба монанди React, Node.js ва Flask ҷои худро доранд, аммо баъзан ба шумо ҳама чизҳои зебо лозим нест. Баъзан, пайвастан ба он чизе, ки кор мекунад, метавонад шуморо аз дарди саратон наҷот диҳад.

Комплекси чорчӯбаи саноатӣ?

Оё чаҳорчӯбаҳо... аз ҳад зиёд зиёд мешаванд? Аҳамият надодан душвор аст, ки баъзе чаҳорчӯбаҳо бештар ба абзоре монанданд, ки барои ҷалби маблағгузории VC тарҳрезӣ шудаанд, на барои ҳалли мушкилоти воқеии таҳиягарон. Чунин ба назар мерасад, ки як экосистемаи томе вуҷуд дорад, ки таҳиягаронро ба ин чаҳорчӯбаҳо тела медиҳад, танҳо барои он ки онҳо баъдтар дарк кунанд, ки пас аз миқёси онҳо ба платформаҳои гаронбаҳо баста мешаванд. Албатта, чаҳорчӯбаҳое ба монанди Databricks манбаи кушода ва ройгон барои оғоз кардан ҳастанд, аммо вақте ки шумо калон мешавед, шумо ба ҳалли корхонаҳои онҳо майл мекунед. Ва ногаҳон, хароҷоти хостинг ва амалиётии шумо аз болои бом мегузарад, дар ҳоле ки VPS оддӣ метавонад кофӣ бошад.


Ин каме ба дом монанд аст, ҳамин тавр не?

Таъхири қабули қарори чаҳорчӯба

Ин аст як маслиҳате, ки ман ба он қасам мехӯрам: дар интихоби чаҳорчӯба шитоб накунед . То он даме, ки меъмории шумо пурра ба итмом нарасад, ӯҳдадор нашавед.


Чаҳорчӯба бояд охирин чизе бошад, ки шумо дар бораи он хавотир мешавед, на аввалин.


Аввалан, боварӣ ҳосил кунед, ки меъмории шумо мустаҳкам аст. Қисмҳои асосии худро бидонед ва чӣ гуна онҳо бо ҳам кор мекунанд. Пас аз он ки шумо онро ба даст овардед, шумо метавонед чаҳорчӯбаҳоро бо фаҳмиши дақиқи он, ки онҳо метавонанд ба куҷо мувофиқат кунанд ё ҳатто комилан мувофиқат кунанд, арзёбӣ кунед.


Ин равиш кафолат медиҳад, ки тарроҳии шумо мустаҳкам ва ба ниёзҳои мушаххаси шумо мувофиқ аст. Вақте ки вақти баррасии чаҳорчӯба меояд, шумо метавонед ба таври возеҳ бубинед, ки он меъмории шуморо бидуни маҳдудият такмил дода метавонад.


Пеш аз он ки шумо ба истифодаи ягон чаҳорчӯба гузаред, аз худ бипурсед: оё шумо дар ҳақиқат ба он ниёз доред? Албатта, чаҳорчӯбаҳо метавонанд қабатҳои автоматизатсия ва роҳатиро илова кунанд, аммо онҳо инчунин бо маҷмӯи маҳдудиятҳои худ меоянд. Агар замимаи шумо талаботи беназир дошта бошад, чаҳорчӯба метавонад бо онҳо хуб бозӣ накунад.


Дар бораи манфиатҳои дарозмуддат бар зидди маҳдудиятҳо дуру дароз фикр кунед.

Барои харҷшаванда сохтани чаҳорчӯба

Агар шумо қарор қабул кунед, ки чаҳорчӯба ба хатар аст, боварӣ ҳосил кунед, ки онро иваз кардан осон аст. Бале, шумо дуруст шунидаед. Баъзе чандириро созед, то ки агар ба шумо лозим ояд, ки онро дертар тарк кунед, ин як вазифаи бузург нест. Ин тавр аст:

Вобастагии худро мухтасар кунед

Дастҳои хурди чиркини чаҳорчӯбаро аз рамзи аслии худ дур нигоҳ доред. Барои абстракт кардани функсияҳои чаҳорчӯба интерфейсҳоро истифода баред, то мантиқи тиҷорати шумо мустақиман аз чаҳорчӯба вобаста набошад.


Фарз мекунем, ки шумо TensorFlow-ро барои омӯзиши мошинсозӣ истифода мебаред. Ба ҷои он ки рамзи TensorFlow дар тамоми замимаи худ ҷойгир кунед, интерфейсҳоро муайян кунед, то чизҳоро тоза ва абстракт нигоҳ доред:

 from abc import ABC, abstractmethod import tensorflow as tf class ModelTrainer(ABC): @abstractmethod def train(self, data): pass class TensorFlowTrainer(ModelTrainer): def train(self, data): # TensorFlow-specific training logic model = tf.keras.models.Sequential([...]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy') model.fit(data, epochs=5) return model


Бо ин кор, мантиқи асосии шумо бо TensorFlow зич алоқаманд нест. Агар ба шумо лозим ояд, ки ба чаҳорчӯбаи дигари омӯзиши мошин гузаред, ин танҳо масъалаи иваз кардани татбиқ аст.

Тазриқи вобастагӣ (DI) дӯсти шумост

Минбаъд, биёед дар бораи тазриқи вобастагӣ (DI) сӯҳбат кунем. Ин техника ба шумо имкон медиҳад, ки татбиқи мушаххаси интерфейсҳои худро ба синфҳои худ ворид кунед ва пойгоҳи кодии худро ҷудошуда ва модул нигоҳ доред.

 class TrainingPipeline: def __init__(self, trainer: ModelTrainer): self.trainer = trainer def execute(self, data): return self.trainer.train(data) # Inject the TensorFlowTrainer implementation pipeline = TrainingPipeline(TensorFlowTrainer())


Акнун рамзи шумо чандир аст, санҷиданаш осон аст ва ба ҳар чизе, ки оянда ба он медиҳад, омода аст.

Инверсияи назоратро қабул кунед (IoC)

Барои ноил шудан ба чандирии ниҳоӣ, бо инверсионии назорат (IoC) чизҳоро ба зина боло баред. Ин намуна ба шумо имкон медиҳад, ки амалияҳоро дар файли конфигуратсия ё макони мутамарказ дар коди худ муайян кунед. Ин гелос дар болои меъмории чаҳорчӯбаи агностикии шумост.


Дар ин ҷо мисоли он аст, ки чӣ тавр он метавонад бо равиши конфигуратсия кор кунад:

 # config.py class Config: TRAINER = 'my_project.trainers.TensorFlowTrainer' # main.py import importlib class TrainingPipeline: def __init__(self, trainer_class: str): module_name, class_name = trainer_class.rsplit('.', 1) module = importlib.import_module(module_name) trainer_cls = getattr(module, class_name) self.trainer = trainer_cls() def execute(self, data): return self.trainer.train(data) # Inject the trainer specified in the configuration from config import Config pipeline = TrainingPipeline(Config.TRAINER)


Ҳоло, агар ба шумо ягон вақт лозим шавад, ки TensorFlow-ро бо чаҳорчӯбаи омӯзиши мошини дигар иваз кунед, шумо танҳо конфигуратсияро навсозӣ мекунед ва идома медиҳед. Ҳеҷ мушкилӣ, драма.

Хулоса

Дар хотир доред, ки чаҳорчӯбаҳо бояд ба меъмории ШУМО хидмат кунанд, на онро дикта кунанд. Бо банақшагирии бодиққат ва абстраксияи стратегӣ, шумо метавонед манфиатҳои чаҳорчӯбҳоро бидуни ба доми вобастагии дарозмуддат ба даст оред. Ҳилла дар зери назорат мондан аст. Ҳамин тавр, дафъаи оянда шумо ба чаҳорчӯба ғарқ шудан хоҳед, як қадам ба ақиб гузоред ва ба худ хотиррасон кунед: шумо кадрҳоро дар ин ҷо даъват мекунед.


Омодагӣ ба осеб дидан


Ташаккур барои хондан!


Ягон савол? Шарҳи худро дар зер гузоред, то баҳсҳои афсонавӣ оғоз кунед!


Блоги маро санҷед ё барои салом 👋 дар Твиттер биёед ё ба канали телеграми ман обуна шавед. Беҳтарин худро ба нақша гиред!

L O A D I N G
. . . comments & more!

About Author

luminousmen HackerNoon profile picture
luminousmen@luminousmen
helping robots conquer the earth and trying not to increase entropy using Python, Data Engineering and Machine Learning

ТЕГИ овезон кунед

ИН МАКОЛА ДАР...