Syntax | سینتکس
Open in Telegram
Focus: Web Lan: Python & Go Website: https://syntaxfa.ir Quick connect: https://quick-connect.syntaxfa.ir Github: https://github.com/syntaxfa Group: https://t.me/Syntax_fa_group
Show more3 184
Subscribers
-124 hours
-17 days
+1930 days
Posts Archive
3 183
اگه کدی که مینویسی، این ویژگی هارو نداره، یه فکری به حال خودت کن 😔:
۱. کدتون مستقل از فریم ورک باشه:
معماری شما نباید وابسته به یه فریم ورک خاص باشه.
کدتون این امکانو بده از فریم ورک ها مثل ابزار ها استفاده کنید بدون اینکه وابسته به محدودیت های یک فریم ورک خاص بشید.
۲. کدتون قابل تست کردن باشه:
قابل تست بودن به این معنیه که بتونید business logic هارو بدون یو آی، دیتابیس، وب سرور یا هر چی وابستگی خارجی که هست، تست کنید.
۳. نباید به ui وابستگی داشته باشید!
قسمت ui رو باید بتونید به راحتی جایگزینش کنید.
مثلا از یک وب ui بتونید بدون اینکه قسمت های دیگه کدتون تغییره کنه، به کنسول و برنامه cli تغییرش بدید.
۴. معماریتون باید مستقل از دیتابیس باشه!
برای مثال: میتونید دیتابیستون رو به راحتی از mysql به mongodb تغییر بدید؟
۵. نباید به یک سرویس خارجی وابستگی داشته باشید!
برای مثال اگه از سرویس اس ام اس استفاده میکنید، آیا میتونید به راحتی بجای کاوه نگار از یه سرویس دیگه استفاده کنید؟
منبع:
https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
#note
@Syntax_fa
3 183
از اونجا که بعضیاتون گفتید چرا همش درباره سی شارپو پی اچ پی میم میذاری. اینم یه میم درباره پایتون
#fun
@Syntax_fa
3 183
سوال مصاحبه جنگویی:
سطح: سخت
تو جنگو میخوایم هر درخواست HTTP رو بصورت خودکار توی یک تراکنس دیتابیس قرار بگیره. یعنی اگه هرکدوم از عملیات های دیتابیس در طول پردازش یک درخواست HTTP با خطا مواجه بشه، تموم تغییراتی که توی دیتابیس اعمال شده rollback شه.
بنظرت چیکار میتونیم بکنیم؟
قبل اینکه جوابو ببینی یکم فکر کن یا سرچ کن:
و اما جواب:
میتونیم با اضافه کردن این خط تو settings.py این قابلیت رو اضافه کنیم:
DATABASES["default"]["ATOMIC_REQUESTS"] = True
اگه فقط بخوایم تو ویو های خاصی atomic requets رو داشته باشیم چیکار میتونیم؟
و جواب این سوال:
میتونیم از دکوریتور atomic استفاده کنیم:
from django.db import transaction
from django.views import View
class MyView(View):
@transaction.atomic
def get(self, request, *args, **kwargs):
...
#interview_question #django
@Syntax_fa3 183
SECURE_PROXY_SSL_HEADER در Django انتظار یک تاپل با دو عنصر را دارد، نام سرصفحه برای جستجو و مقدار مورد نیاز.
برای پاسخگویی به این نیاز، تابع config یک آرگومان cast را میپذیرد که هر callable را دریافت میکند و از آن برای تبدیل مقدار رشتهای به چیز دیگری استفاده میکند.
بیایید چند مثال برای موارد ذکر شده ببینیم:
>>> os.environ['DEBUG'] = 'False'
>>> config('DEBUG', cast=bool)
False
>>> os.environ['EMAIL_PORT'] = '42'
>>> config('EMAIL_PORT', cast=int)
42
>>> os.environ['ALLOWED_HOSTS'] = '.localhost, .herokuapp.com'
>>> config('ALLOWED_HOSTS', cast=lambda v: [s.strip() for s in v.split(',')])
['.localhost', '.herokuapp.com']
>>> os.environ['SECURE_PROXY_SSL_HEADER'] = 'HTTP_X_FORWARDED_PROTO, https'
>>> config('SECURE_PROXY_SSL_HEADER', cast=Csv(post_process=tuple))
('HTTP_X_FORWARDED_PROTO', 'https')
همانطور که میبینید، cast بسیار انعطافپذیر است. اما مثال آخر کمی پیچیده شد.
#python_decouple
@Syntax_fa3 183
پکیج `python-decouple`
یک ابزار مفید برای جداسازی تنظیمات و پیکربندیهای پروژههای پایتون است. این کار باعث میشود که کد شما از وابستگیهای محیطی جدا باشد و تنظیمات را به راحتی تغییر دهید بدون اینکه نیاز به تغییر در کد داشته باشید. این پکیج به خصوص برای مدیریت متغیرهای محیطی و تنظیمات حساس مانند کلیدهای API، اطلاعات پایگاه داده و غیره بسیار مفید است.
ویژگیها
- مدیریت متغیرهای محیطی: متغیرهای محیطی را از فایل
.env بارگذاری میکند.
- پشتیبانی از انواع دادهها: قابلیت تبدیل مقادیر متغیرها به انواع دادهای مختلف مانند int`، `float`، `bool و ...
- مقدار پیشفرض: امکان تعریف مقادیر پیشفرض برای متغیرهایی که ممکن است در محیط تنظیم نشده باشند.
نصب
برای نصب پکیج python-decouple میتوانید از دستور زیر استفاده کنید:
pip install python-decouple
نحوه استفاده
1. ایجاد فایل `.env`:
ابتدا یک فایل با نام .env در ریشه پروژه خود ایجاد کنید و تنظیمات مورد نظر خود را در آن وارد کنید. برای مثال:
DEBUG=True
SECRET_KEY=mysecretkey
DATABASE_URL=postgres://user:password@localhost:5432/mydatabase
2. استفاده از `config` در کد پایتون:
در کد پایتون خود، پکیج decouple را وارد کرده و از Config استفاده کنید:
from decouple import config
DEBUG = config('DEBUG', default=False, cast=bool)
SECRET_KEY = config('SECRET_KEY')
DATABASE_URL = config('DATABASE_URL')
3. توضیحات بیشتر:
- config('DEBUG', default=False, cast=bool):
این خط مقدار متغیر DEBUG را از فایل .env میخواند و آن را به نوع bool تبدیل میکند. اگر این متغیر در فایل .env موجود نباشد، مقدار پیشفرض False استفاده میشود.
- config('SECRET_KEY'):
این خط مقدار متغیر SECRET_KEY را از فایل .env میخواند.
- config('DATABASE_URL'):
این خط مقدار متغیر DATABASE_URL را از فایل .env میخواند.
مثال کامل
فرض کنید یک پروژه ساده دارید که از Flask استفاده میکند و میخواهید تنظیمات خود را با استفاده از python-decouple مدیریت کنید.
1. ایجاد فایل `.env`:
DEBUG=True
SECRET_KEY=mysecretkey
DATABASE_URL=sqlite:///mydatabase.db
2. کد پایتون:
from flask import Flask
from decouple import config
app = Flask(__name__)
app.config['DEBUG'] = config('DEBUG', default=False, cast=bool)
app.config['SECRET_KEY'] = config('SECRET_KEY')
app.config['SQLALCHEMY_DATABASE_URI'] = config('DATABASE_URL')
@app.route('/')
def home():
return "Hello, World!"
if __name__ == '__main__':
app.run()
این کد یک برنامه ساده Flask ایجاد میکند که تنظیمات خود را از فایل .env میخواند. با این کار، میتوانید به راحتی تنظیمات خود را تغییر دهید بدون اینکه نیاز به تغییر در کد داشته باشید.
——————————————————-
توضیحات بیشتر برای علاقه مندان😏:
چگونه کار میکند؟
Decouple همیشه گزینهها را به این ترتیب جستجو میکند:
متغیرهای محیطی؛
Repository: فایل ini یا .env؛
آرگومان پیشفرض که به config ارسال شده است.
چهار کلاس جادوی این کار را انجام میدهند:
Config
هماهنگی تمام بازیابیهای تنظیمات.
RepositoryIni
میتواند مقادیر را از os.environ و فایلهای ini بخواند، به همین ترتیب.
نکته: از نسخه 3.0 به بعد، decouple ترتیب اولویت متغیرهای محیطی یونیکس نسبت به فایلهای تنظیمات را رعایت میکند.
RepositoryEnv
میتواند مقادیر را از os.environ و فایلهای .env بخواند.
نکته: از نسخه 3.0 به بعد، decouple ترتیب اولویت متغیرهای محیطی یونیکس نسبت به فایلهای تنظیمات را رعایت میکند.
AutoConfig
این یک کارخانه Config تنبل است که تشخیص میدهد کدام مخزن تنظیمات را استفاده میکنید.
به صورت بازگشتی مسیر ماژول تنظیمات شما را جستجو میکند تا فایل settings.ini یا .env را پیدا کند.
به صورت اختیاری، آرگومان search_path را میپذیرد تا صریحاً تعیین کند جستجو از کجا شروع شود.
شیء config یک نمونه از AutoConfig است که یک Config با مخزن مناسب را در اولین باری که استفاده میشود، ایجاد میکند.
درک آرگومان CAST
به صورت پیشفرض، همه مقادیری که توسط decouple بازگردانده میشوند رشتهای هستند، زیرا آنها از فایلهای متنی یا envvars خوانده میشوند.
با این حال، کد پایتون شما ممکن است انتظار نوع داده دیگری را داشته باشد، برای مثال:
DEBUG در Django انتظار یک مقدار بولی True یا False دارد.
EMAIL_PORT در Django انتظار یک عدد صحیح را دارد.
ALLOWED_HOSTS در Django انتظار یک لیست از نامهای میزبان را دارد.3 183
موقعیت اخذ جاب آفر انگلیس
موقعیتهای شغلی:
مدیر فنی
هوش مصنوعی و یادگیری ماشین
دیتا ساینس
مدیر پروژه
دواپس
امنیت
فول استک
اندروید یا ios
و ui ux
یسری توضیحات بدم
۱-ابتدا یه محاسبه فنی از طرف شرکت ما (راهبران رایان فناکو) جهت تایید توانایی تخصصی خواهید شد
۲-آیلتس با نمره حداقل ۵
۳-صد و ده هزار پوند (این پول به حساب خودتون داخل صرافی بلوکه میشه و بعد از استقرار در شرکت و بستن قرارداد با شرکت ثالث پول به حساب شرکت ثالث انتقال میسه)
۴-حقوق دریافتی ماهیانه ۳۸۰۰ پوند و قرارداد اولیه دو ساله است
۵-اخذ اقامت همراه خوانواده یا پارتنر
جهت اطلاعات بیشتر پیام بدید
@behzad_azadi
@code_crafters
3 183
موقعیت اخذ جاب آفر انگلیس
موقعیتهای شغلی:
مدیر فنی
هوش مصنوعی و یادگیری ماشین
دیتا ساینس
مدیر پروژه
دواپس
امنیت
فول استک
اندروید یا ios
و ui ux
یسری توضیحات بدم
۱-ابتدا یه محاسبه فنی از طرف شرکت ما (راهبران رایان فناکو) جهت تایید توانایی تخصصی خواهید شد
۲-آیلتس با نمره حداقل ۵
۳-صد و ده هزار پوند (این پول به حساب خودتون داخل صرافی بلوکه میشه و بعد از استقرار در شرکت و بستن قرارداد با شرکت ثالث پول به حساب شرکت ثالث انتقال میسه)
۴-حقوق دریافتی ماهیانه ۳۸۰۰ پوند و قرارداد اولیه دو ساله است
۵-اخذ اقامت همراه خوانواده یا پارتنر
جهت اطلاعات بیشتر پیام بدید
@behzad_azadi
3 183
دوستان بخدا کیک نیست واقعیه. داوطلبانه کتاب مینویسیم لطفا شرکت کنید. شرکت نکنید حقیقتا انگیزهای نمیمونه برای ما.
هدف ما کاملا غیر تجاریه. دوست داریم کل بچههای ایران زمین به آموزش با کیفیت رایگان دسترسی داشته باشند. دوست نداریم به زبان فارسی همش مطالب تکراری و دورههای بی کیفیت تولید بشه. اون هم دورههایی که بیشتر با هدف درامدزایی انجام میشه و نتیجهای جز پکیج فروشهای اینستاگرامی نداره.
حتی شما هم میتونید همکاری کنید. از کتاب نوشتن تا ترجمه. اما بزرگترین و سادهترین کمک شما دوستان همین شرکت در نظرسنجی هست.
ببخشید که زیاد صحبت کردم. پیام موقتی هست.
3 183
⚡️ زبان انگلیسی: بهترین دوست برنامهنویسان در عصر حاضر ⚡️
✏️ مقدمه: همه ما برنامهنویسان با کمی پیشرفت در حوزه کاری خودمون، کم کم متوجه میشویم که باز دانشمون کافی نیست. معمولا تحقیقات خودمون رو با زبان فارسی شروع میکنیم؛ اما پس از مدتی میفهمیم که اطلاعات به زبان فارسی آنطور که فکر میکنیم هم کاربردی نیستند. اینجاست که متوجه یک موضوع مهم میشویم: زبان انگلیسی بهترین ابزار یادگیری برنامهنویسی است.– با توجه به اهمیت فراوان این موضوع تصمیم گرفتم برخی نکات کاربردی در مسیر یادگیری را به شما آموزش بدم. پس Let's Go سینتکسیها! 😉 💡 نکته اول: منبع و روش یادگیری مناسبی انتخاب کنید. مهمترین نکته در مسیر یادگیری انگلیسی، منبع یادگیری این زبان شیرین است. با انتخاب منبع و روش مطالعه مناسب در این مسیر اصلا احساس ناامیدی نخواهید کرد و با هر بار مطالعه بیشتر به ارتقا دانشتون کمک خواهد نمود. با توجه به ویژگی شخصیتی خودتون انتخاب کنید که روش خودآموزی برای شما مناسبتر است یا کلاس رفتن. معمولا افرادی که تازه قصد شروع یادگیری را دارند کلاس زبان به آنها توصیه میشود. اما اگر تا حدودی با انگلیسی آشنایی دارید و قصد دارید آن را تقویت سازید روش خودآموزی میتواند برای شما انتخاب خوبی باشد. در کنار خودآموزی میتوانید یک منتور هم داشته باشید. 💡 نکته دوم: تمرین زیاد و در یادگیری استمرار داشته باشید. یادگیری زبان انگلیسی مانند هر مهارت دیگر نیز، نیاز به تمرین زیاد دارد. با داشتن استمرار در فرایند یادگیری زبان انگلیسی، نکاتی را که یادگرفتهاید را فراموش نخواهید کرد و به مرور خواهید توانست حتی انگلیسی فکر کنید! 💡 نکته سوم: انگلیسی را با انگلیسی یادبگیرید. آیا پس از تولد، برای یادگیری زبان مادری نیاز به زبان دیگری داشتهاید؟ جواب قطعا خیر است؛ پس سعی کنید انگلیسی را حتما با انگلیسی یادبگیرید. توصیه میشود از دیکشنری English To English استفاده کنید و برای فهم جملات و کلمات اصلا نگران نباشید. در صورتی که توضیحات برای شما قابل فهم نباشد کافی است صبر داشته باشید تا به مرور زمان درک نمایید. همچنین میتوانید با جستجو کلمات و دیدن تصاویرشان آنها را به خاطر بسپارید و متوجه شوید. 💡 نکته چهارم: خودتان جملهسازی کنید و با صدای بلند جملات را بخوانید. جملهسازی توسط خودتان سبب به حافظهسپردن میشود و کمتر انگلیسی را فراموش خواهید کرد. با بلند خواندن جملات، عضلات صورت و حنجره خود را به تلفظ واژگان انگلیسی عادت میدهید. 💡 نکته پنجم: در اوایل یادگیری زیاد بر گرامر و حفظ کردن آن تمرکز ننمایید. طبق نکته سوم ما برای یادگیری زبان مادری خود فقط تکرار کردهایم. پس در اوایل یادگیری خود مانند اوایل تولد خود فیلسوف نباشید. وسواس داشتن بر گرامر در نهایت سبب گیج شدن شما و در نهایت ناامیدی خودتان میشود. 💡 نکته ششم و پایانی: تکنیکهای یادگیری-تقویتی مانند Shadowing بیاموزید. با استفاده از چنین تکنیکهایی میتوانید مهارت زبان انگلیسی را در بخشهای Listening, Reading, Speaking و Writing تقویت سازید. یکی از معروفترین و کاربردیترین این تکنیکها، تکنیک شادوئینگ است. این تکنیک بسیار ساده است و در طولانی مدت معجزه میکند. ⭐️ تمام این نکات گفته شده بر اساس تحقیقات و تجارب شخصی است که در سالیان زیاد کسب شده. سعی کردم با ادبیاتی مناسب براتون توضیح دهم پس امیدوارم کاربردی باشه. اگر به نظر شما نکتهای جا مونده، در بخش کامنت نظرتان را بنویسید. 😇 #public #english @Syntax_fa | boost
3 183
درود دوستان سینتکسی! 👋
ما در انجمن Persian CC Books قصد داریم کتابهای رایگان و آزاد را در زمینه برنامهنویسی منتشر کنیم.
یکی از اهداف ما نگارش مجموعه کتابهای آموزشی PHP است. برای تولید محتوای با کیفیت و درست این مجموعه کتاب PHP، نیاز به مشارکت شما عزیزان در یک نظرسنجی داریم. نظرسنجی در ابتدا دارای سوالات عمومی جهت احراز هویت و افزایش کیفیت نظرسنجی میباشد؛ تمام اطلاعات شما نزد ما محفوظ خواهد ماند.
🚀 آدرس نظرسنجی (از طریق پلتفرم پرسلاین): 💎 https://survey.porsline.ir/s/tdca0t0f با تشکر. کوچیک شما، محمد از PCCBs. 😇 #public @Syntax_fa | boost
3 183
⚡️ اتمام سوالات نظرسنجی! 😆
ممنون از کسانی که تا اینجا همراه ما بودند و در نظرسنجی شرکت کردند. سوالات تا فردا در دسترس خواهند بود؛ لذا اگر این نظرسنجی را مشاهده میکنید لطفا شرکت کنید. با تشکر.
@Syntax_fa
3 183
در یک وبسایت تیم برنامهنویسی، کدام بخشها باید بیشتر مورد توجه قرار گیرند؟ [چند گزینه قابل انتخاب است]
3 183
برای دیزاین UI/UX یک سایت برنامهنویسی فریلنسری، کدام مورد را مناسبتر میدانید؟ [پیشنهاداتتان را نیز میتوانید کامنت کنید]
3 183
فرض کنید کارفرما هستید: کدام نمونه یا نمونهها را برای یک سایت تیمی فریلنسری ترجیح میدهید؟
3 183
از نظر شما، چه نوع رنگبندی برای یک سایت برنامهنویسی و طراحی وب مناسبتر است؟
3 183
اگر تا اینجا در نظرسنجی شرکت کردهاید از شما متشکریم!😇
این سوالات مربوط به بخش عمومی نظرسنجی بودند. دقایقی دیگر سوالات اصلی نظرسنجی منتشر میشود. حتما به آنها نیز پاسخ دهید.
@Syntax_fa
3 183
ویژگیهای کارفرمایانی که با آنها کار کردهاید چه بوده است؟ (چند گزینه قابل انتخاب است)
