کدام سناریو درست تره؟
سناریو اول
استفاده از SQLite در development و postgres در production
سناریو دوم
استفاده از postgres هم در development و هم در production
سناریو اول
استفاده از SQLite در development و postgres در production
سناریو دوم
استفاده از postgres هم در development و هم در production
ببینید postgres و sqlite تفاوت هایی تو عملکردشون دارند. به صورت خلاصه، sqlite خیلی شما رو در قید و بند نمیذاره اما postgres رو خیلی از قوانین حساس تر از sqlite عمل میکنه.
همین باعث میشه شما تو development روی sqlite اروری نبینی اما روی production ببینی!
در این مورد به زودی یه مقاله مینویسم و به تفصیل توضیح میدم
🆔 @CodeBazDev
همین باعث میشه شما تو development روی sqlite اروری نبینی اما روی production ببینی!
در این مورد به زودی یه مقاله مینویسم و به تفصیل توضیح میدم
🆔 @CodeBazDev
👍6
شما توی پروداکشن برای نیاز های sql ای، بیشتر از چه دیتابیسی برای جنگو استفاده میکنید؟
Anonymous Poll
81%
postgres
8%
mysql
0%
ms sql server
6%
oracle
6%
سایر
چند سال پیش توی یک شرکت کار میکردم که چند محصول نرمافزاری داشت.
پلفرم A یک پلتفرم گردشگری بود که من با django و react و postgres داشتم توسعه اش میدادم.
پلفرم B هم یک پلفرم رزرو آنلاین وقت دکتر بود (شبیه اسنپدکتر یا تپسیدکتر) که یک تیم دیگه با node js و vue و mysql توسعه داده بودند.
تو پلتفرم A ما نقش های تورلیدر و مسافر رو داشتیم و تو پلتفرم B نقش های دکتر و بیمار
از اونجایی که این نقش ها خیلی شبیه به هم بودند، یه روز مدیر عامل پیشنهاد داد چی میشه اگه پلتفرم B رو بیاریم در دل A بگنجونیم. اینطوری که پزشک اسمش عوض بشه به تورلیدر و بیمار هم اسمش عوض بشه به مسافر!
خیلی ایده قشنگی بود ولی ما مخالفت کردیم چون این دو تا محصول با دو تا تکنولوژی خیلی متفاوت توسعه داده شده بودند. هر طوری فکر میکردیم میدیدیم نمیشه به راحتی این دو رو با هم مرتبط کرد.
اولین ایده ای که به ذهنم رسید این بود که برم node js و vue یاد بگیرم.
این ایده رو امتحان کردم. یه مقدار که با پروژه دست و پنجه نرم کردم دیدم من حتی اگه node و vue هم یاد بگیرم بعدش باید ببینم برنامهنویسان قبلی تو این پروژه چه کرده اند. آخه پروژه B خودش دو سه سالی توسعه اش طول کشیده بود برای همین دو سه بار معماری عوض کرده بودند و دست خط های مختلفی از برنامهنویس های مختلفی توش دیده میشد. هر جای پروژه یه قانون خاصی برای خودش داشت. مثلا داشبوردش با ین منطق متفاوتی از فرانتش کار میکرد در صورتی که هر دو هم node و vue بودند.
یه مقدار بیشتر که R&D کردم با معجزه ای به نام
این دستور میتونه از روی جداول دیتابیس، براتون مدل بسازه
میدونستم که جنگو میتونه همزمان چندین دیتابیس رو مدیریت کنه. پس دست به کار شدم و دیتابیس mysql رو به پروژه خودم وصل کردم.
بعد یه اپ جدید ساختم و با استفاده از
بعد از اینم دیگه همه چی برام روال شد. دیگه هر دیتایی میخواستم با orm جنگو کوئری میزدم. حتی میتونستم با drf براش api بنویسم.
خلاصه:
با دستور
پ.ن: فقط مشکلش این بود که نمیشد روش migrate زد. اگه گفتید چرا؟ 😊
#django
🆔 @CodeBazDev
پلفرم A یک پلتفرم گردشگری بود که من با django و react و postgres داشتم توسعه اش میدادم.
پلفرم B هم یک پلفرم رزرو آنلاین وقت دکتر بود (شبیه اسنپدکتر یا تپسیدکتر) که یک تیم دیگه با node js و vue و mysql توسعه داده بودند.
تو پلتفرم A ما نقش های تورلیدر و مسافر رو داشتیم و تو پلتفرم B نقش های دکتر و بیمار
از اونجایی که این نقش ها خیلی شبیه به هم بودند، یه روز مدیر عامل پیشنهاد داد چی میشه اگه پلتفرم B رو بیاریم در دل A بگنجونیم. اینطوری که پزشک اسمش عوض بشه به تورلیدر و بیمار هم اسمش عوض بشه به مسافر!
خیلی ایده قشنگی بود ولی ما مخالفت کردیم چون این دو تا محصول با دو تا تکنولوژی خیلی متفاوت توسعه داده شده بودند. هر طوری فکر میکردیم میدیدیم نمیشه به راحتی این دو رو با هم مرتبط کرد.
اولین ایده ای که به ذهنم رسید این بود که برم node js و vue یاد بگیرم.
این ایده رو امتحان کردم. یه مقدار که با پروژه دست و پنجه نرم کردم دیدم من حتی اگه node و vue هم یاد بگیرم بعدش باید ببینم برنامهنویسان قبلی تو این پروژه چه کرده اند. آخه پروژه B خودش دو سه سالی توسعه اش طول کشیده بود برای همین دو سه بار معماری عوض کرده بودند و دست خط های مختلفی از برنامهنویس های مختلفی توش دیده میشد. هر جای پروژه یه قانون خاصی برای خودش داشت. مثلا داشبوردش با ین منطق متفاوتی از فرانتش کار میکرد در صورتی که هر دو هم node و vue بودند.
یه مقدار بیشتر که R&D کردم با معجزه ای به نام
inspectdb
در جنگو آشنا شدم.این دستور میتونه از روی جداول دیتابیس، براتون مدل بسازه
میدونستم که جنگو میتونه همزمان چندین دیتابیس رو مدیریت کنه. پس دست به کار شدم و دیتابیس mysql رو به پروژه خودم وصل کردم.
بعد یه اپ جدید ساختم و با استفاده از
inspectdb
مدل ها رو از روی دیتابیس ساختم.بعد از اینم دیگه همه چی برام روال شد. دیگه هر دیتایی میخواستم با orm جنگو کوئری میزدم. حتی میتونستم با drf براش api بنویسم.
خلاصه:
با دستور
inspectdb
به راحتی هر دیتابیسی رو به مدل تبدیل کنید و بعد با orm هر طور میخواهید باهاش کار کنید.پ.ن: فقط مشکلش این بود که نمیشد روش migrate زد. اگه گفتید چرا؟ 😊
#django
🆔 @CodeBazDev
👍2
یه چیز خوبی که مهندس دلشاد، مدیرم سالها قبل یادم داد این بود که تو نامگذاری از قانون prefix استفاده کنم.
البته ایشون اسمش براش نذاشته بود من اسمش رو میذارم prefix
این قانون میگه که همه
- پوشه های کنار هم
- فایل های کنار هم
- توابع کنار هم
- متغیر های کنار هم
- و ...
که یه بخش یکسان تو اسمشون هست، اون بخش یکسان رو اولش بنویس
اینطوری چشم سریع تر پیداش میکنه
تو این عکس اپ مورد نظرتون رو از سمت راست سریع تر پیدا میکنید یا از سمت چپ؟
#djangop #pep8
🆔 @CodeBazDev
البته ایشون اسمش براش نذاشته بود من اسمش رو میذارم prefix
این قانون میگه که همه
- پوشه های کنار هم
- فایل های کنار هم
- توابع کنار هم
- متغیر های کنار هم
- و ...
که یه بخش یکسان تو اسمشون هست، اون بخش یکسان رو اولش بنویس
اینطوری چشم سریع تر پیداش میکنه
تو این عکس اپ مورد نظرتون رو از سمت راست سریع تر پیدا میکنید یا از سمت چپ؟
#djangop #pep8
🆔 @CodeBazDev
👍4
نامگذاری هایی که سمت بکند انجام میشه خیلی مهم هستند.
گاهی یه نام گذاری اشتباه در بکند میتونه حسابی تو فرانت افتضاح به بار بیاره
به این عکس توجه کنید. اینجا سمت فرانت از ابزاری استفاده شده که به صورت خودکار کد های بکند رو اسکن میکنه و براشون کد js جنریت میکنه
ستون سمت چپ ایراد داره
ستون سمت راست درسته
در این مثال یک اشتباه در نامگذاری سمت بکند باعث شده ۷ تا تابع با نام نادرست سمت فرانت تولید بشه.
اگه متوجه منظورم نشدید کامنت بذارید تا ویس بدم و توضیح بدم
#django #pep8
🆔 @CodeBazDev
گاهی یه نام گذاری اشتباه در بکند میتونه حسابی تو فرانت افتضاح به بار بیاره
به این عکس توجه کنید. اینجا سمت فرانت از ابزاری استفاده شده که به صورت خودکار کد های بکند رو اسکن میکنه و براشون کد js جنریت میکنه
ستون سمت چپ ایراد داره
ستون سمت راست درسته
در این مثال یک اشتباه در نامگذاری سمت بکند باعث شده ۷ تا تابع با نام نادرست سمت فرانت تولید بشه.
اگه متوجه منظورم نشدید کامنت بذارید تا ویس بدم و توضیح بدم
#django #pep8
🆔 @CodeBazDev
🙏1
یه دلیل برای اینکه هوش مصنوعی جای برنامهنویس رو نمیگیره ...
امروز فایل models.py رو دادم به Chat gpt گفتم که فلان گزارش رو بر اساس این مدل ها برام بساز
یه کوئری نوشت و وقتی اجرا کردم جواب هم داد اتفاقا
یه مقدار که بیشتر دقت کردم دیدم این جوابی که داده از نظر منطقی نمیتونه درست باشه
وقتی کدی که تولید کرده بود رو با دقت بیشتری دیدم متوجه شدم که کدش اشتباه بوده
نتیجه ای که من میگیرم اینه که هوش مصنوعی هر چقدر هم که بتونه کد های پیچیده بنویسه باز یه انسان باید باشه که خروجی کارش رو کنترل کنه
#ai
🆔 @CodeBazDev
امروز فایل models.py رو دادم به Chat gpt گفتم که فلان گزارش رو بر اساس این مدل ها برام بساز
یه کوئری نوشت و وقتی اجرا کردم جواب هم داد اتفاقا
یه مقدار که بیشتر دقت کردم دیدم این جوابی که داده از نظر منطقی نمیتونه درست باشه
وقتی کدی که تولید کرده بود رو با دقت بیشتری دیدم متوجه شدم که کدش اشتباه بوده
نتیجه ای که من میگیرم اینه که هوش مصنوعی هر چقدر هم که بتونه کد های پیچیده بنویسه باز یه انسان باید باشه که خروجی کارش رو کنترل کنه
#ai
🆔 @CodeBazDev
👍6👎2
تایپ ۱۰ انگشتی یاد بگیرید!
همیشه من به همه گفته ام که این کارو انجام بدن. دلایل زیادی هست که اهمیت بلد بودن تایپ ۱۰ انگشتی رو بیان میکنه اما ۲ تا از مهم ترین هاش از نظر من اینه:
- هر کس ببینه شما میتونید بدون نگاه به کیبورد ۱۰ انگشتی تایپ کنید (به خصوص اگه سرعت تایپتون بالا باشه) پیش خودش میگه حتما شما خیلی مهارت بالایی دارید. روی شما یه طور دیگه حساب میکنه. یه جورایی خیلی خفن به نظر میرسید
- دوم برای اینکه بتونید سریع تر با هوش مصنوعی چت کنید و کاراتون رو پیش ببرید
🆔 @CodeBazDev
همیشه من به همه گفته ام که این کارو انجام بدن. دلایل زیادی هست که اهمیت بلد بودن تایپ ۱۰ انگشتی رو بیان میکنه اما ۲ تا از مهم ترین هاش از نظر من اینه:
- هر کس ببینه شما میتونید بدون نگاه به کیبورد ۱۰ انگشتی تایپ کنید (به خصوص اگه سرعت تایپتون بالا باشه) پیش خودش میگه حتما شما خیلی مهارت بالایی دارید. روی شما یه طور دیگه حساب میکنه. یه جورایی خیلی خفن به نظر میرسید
- دوم برای اینکه بتونید سریع تر با هوش مصنوعی چت کنید و کاراتون رو پیش ببرید
🆔 @CodeBazDev
🤣7
دوستان پنجشنبه این هفته احتمالا شرایط برگزاری کلاس رایگان ۸ تا ۹ صبح برقراره اما خبر قطعی اش رو اعلام خواهم کرد
❤4
دوستان لطفا اونایی که واقعا مایل هستند کلاس رو شرکت کنند زیر این پیام کامنت بذارند چون میخوام اگه کسی نمیاد من الکی صبح زود نشینم پای سیستم 😂😂😂
دوستان گلم سلام
یه آموزشگاهی هست که میخواد طبق برنامه زیر بوتکمپ جنگو برگزار کنه
اگر کسی مایل به تدریس بود لطفا به من پیام بده
۱۸ تیر شروعش هست
تا دو ماه
هفته ای ۳ روز
هر روز ۴ ساعته
باید django و html/css/js و server بلد باشید
🆔 @CodeBazDev
یه آموزشگاهی هست که میخواد طبق برنامه زیر بوتکمپ جنگو برگزار کنه
اگر کسی مایل به تدریس بود لطفا به من پیام بده
۱۸ تیر شروعش هست
تا دو ماه
هفته ای ۳ روز
هر روز ۴ ساعته
باید django و html/css/js و server بلد باشید
🆔 @CodeBazDev
به نظرم رسید چند روزی در مورد رزومه نویسی صحبت کنیم.
به نظرم نباید جنسیت رو در رزومه نوشت مگر اینکه اسم شما نتونه جنسیت تون رو مشخص کنه
مثلا من که اسمم محمدرضا است دلیلی نداره تو رزومه ام بنویسم «جنسیت: آقا»
ولی خب مثلا اگه اسمم متین بود خوب بود بنویسم. یا نصرت یا ...
🆔 @CodeBazDev
#resume_tips
به نظرم نباید جنسیت رو در رزومه نوشت مگر اینکه اسم شما نتونه جنسیت تون رو مشخص کنه
مثلا من که اسمم محمدرضا است دلیلی نداره تو رزومه ام بنویسم «جنسیت: آقا»
ولی خب مثلا اگه اسمم متین بود خوب بود بنویسم. یا نصرت یا ...
🆔 @CodeBazDev
#resume_tips
😁4
CodeBaz.dev
به نظرم رسید چند روزی در مورد رزومه نویسی صحبت کنیم. به نظرم نباید جنسیت رو در رزومه نوشت مگر اینکه اسم شما نتونه جنسیت تون رو مشخص کنه مثلا من که اسمم محمدرضا است دلیلی نداره تو رزومه ام بنویسم «جنسیت: آقا» ولی خب مثلا اگه اسمم متین بود خوب بود بنویسم. یا…
البته اگه وضعیت سربازی رو توی رزومه تون اضافه کنید، حتی اگه اسمتون مثلا متین هم باشه کاملا مشخصه که آقا هستید.
🆔 @CodeBazDev
#resume_tips
🆔 @CodeBazDev
#resume_tips