توی vscode برای شخصی سازی تم و تنظیمات دیگه:
ctrl + shift + p
رو بگیرید
بعد دستور زیر رو بزنید :
Open settings(JSON)
یه فایل جیسون باز میکنه که میتونید تنظیمات مورد نظرتون از جمله تم رو تغییر بدید...
برای تم کد های زیر رو بهش اضافه کنید و رنگ ها رو مطابق میل خودتون تغییر بدید:
`"workbench.colorCustomizations": {
"activityBar.background": "#122b28",
"titleBar.activeBackground": "#02130e",
"titleBar.activeForeground": "#F6FBFB",
"list.inactiveSelectionBackground": "#757575",
"sideBar.background": "#212121",
"sideBar.foreground": "#E0E0E0",
"editor.background": "#000000",
"editor.foreground": "#BDBDBD",
"sideBarSectionHeader.background": "#00796B",
"sideBarSectionHeader.foreground": "#000000",
"activityBar.border": "#FFFFFF",
"statusBar.background": "#102F97",
"scrollbarSlider.activeBackground": "#FAFAFA",
"scrollbarSlider.hoverBackground": "#E0E0E0",
"badge.background": "#dbcbc6"
},`
————————————-
`"editor.tokenColorCustomizations": {
"numbers": "#FBC02D",
"comments": "#A1887F",
"functions": "#FDD835",
"variables": "#FFA000",
"types": "#0097A7",
"keywords": "#E91E63",
"strings": "#CDDC39",
},`
ctrl + shift + p
رو بگیرید
بعد دستور زیر رو بزنید :
Open settings(JSON)
یه فایل جیسون باز میکنه که میتونید تنظیمات مورد نظرتون از جمله تم رو تغییر بدید...
برای تم کد های زیر رو بهش اضافه کنید و رنگ ها رو مطابق میل خودتون تغییر بدید:
`"workbench.colorCustomizations": {
"activityBar.background": "#122b28",
"titleBar.activeBackground": "#02130e",
"titleBar.activeForeground": "#F6FBFB",
"list.inactiveSelectionBackground": "#757575",
"sideBar.background": "#212121",
"sideBar.foreground": "#E0E0E0",
"editor.background": "#000000",
"editor.foreground": "#BDBDBD",
"sideBarSectionHeader.background": "#00796B",
"sideBarSectionHeader.foreground": "#000000",
"activityBar.border": "#FFFFFF",
"statusBar.background": "#102F97",
"scrollbarSlider.activeBackground": "#FAFAFA",
"scrollbarSlider.hoverBackground": "#E0E0E0",
"badge.background": "#dbcbc6"
},`
————————————-
`"editor.tokenColorCustomizations": {
"numbers": "#FBC02D",
"comments": "#A1887F",
"functions": "#FDD835",
"variables": "#FFA000",
"types": "#0097A7",
"keywords": "#E91E63",
"strings": "#CDDC39",
},`
🔥Challenge
⚡️⚡️Future⚡️⚡️
هر چی راجب Future میدونید بگید 😅
که توی پست های بعدی بازش کنیم...
مشارکت کنید آقا مشارکت کنید
ساعت ۱ نصف شب کی مشارکت میکنه اخه 😂😂
#dart_challenge #challenge
⚡️⚡️Future⚡️⚡️
هر چی راجب Future میدونید بگید 😅
که توی پست های بعدی بازش کنیم...
مشارکت کنید آقا مشارکت کنید
ساعت ۱ نصف شب کی مشارکت میکنه اخه 😂😂
#dart_challenge #challenge
💊Capsule
⚡️⚡️Future⚡️⚡️
1⃣
همتون تا حالا کلمه پوش نوتیفیکشن رو شنیدین..
وقتی که یه event رو از سمت سرور میفرستیم به سمت کلاینت، اصطلاحن میگیم که داریم اون event رو push میکنیم.
حالا چرا اینو گفتم؟
صبر کن و تا اخر بخون...
دو تا واژه زیر رو ببین
Pull کشیدن
Push هل دادن
شما وقتی به سرور یه رکوئست میزنی و یه چیزی ازش میگیری در واقع داری یه اطلاعاتی رو از سرور واکشی میکنی (pull)
وقتی که سرور توی یه فرایند real time برات یه event میفرسته داره یه چیزی رو به سمت تو push میکنه.
🔥حالا بیایم توی دنیای خودمون و دنیای فانکشن ها.
یه فانکشن معمولی رو در نظر بگیر.
هر موقع این فانکشن رو صدا بزنی یه عملیاتی انجام میده و همون موقع یه خروجی بهت تحویل میده.
یعنی اینکه تو تصمیم میگیری که کی و چه زمانی از اون فانکشن اطلاعات بگیری ( هر موقع صداش بزنی بلافاصله بهت جواب میده پس تو با اختیار عملی که داری تصمیم میگیری که کی صداش بزنی و کی اطلاعات رو بگیری)
🔥پس به فانکشن های معمولی که هر موقع صداشون بزنی یه خروجی (همون لحظه) بهت میدن میتونیم بگیم که از نوع pull هستن.
🔥در مقابل اینا یه نوع دیگه از فانکشن ها هستن که همون موقع که صداش بزنی بهت خروجی رو نمیده و میگه صبر کن صبر کن صبر کن صبر کن.... تا من در اینده بهت یه جوابی بدم
بهت میگه منو ک صدا زدی میتونی بری به کارای دیگت برسی و من در اینده یه جوابی رو برات push میکنم.
در واقع اینجا اختیار عمل اینکه که چه زمانی جواب بیاد دیگه با تو نیست (مثل همون پوش نوتیف که از سرور میومد و نمیدونستی که قراره کی بیاد)
🔥پس دو نوع فانکشن داریم :
✔️معمولی :
✅همون موقع کال شدن جواب میده
✅ما اختیار داریم که کی اطلاعات ازش بگیریم.
✅از نوع pull هست.
✔️نوع Future
✅همون موقع کال شدن جواب رو برنمیگردونه و در اینده یه جوابی رو برامون push میکنه
✅اختیار اینکه که کی جواب بیاد دیگه با ما نیست
✅از نوع push هست.
#capsule #dart
⚡️⚡️Future⚡️⚡️
1⃣
همتون تا حالا کلمه پوش نوتیفیکشن رو شنیدین..
وقتی که یه event رو از سمت سرور میفرستیم به سمت کلاینت، اصطلاحن میگیم که داریم اون event رو push میکنیم.
حالا چرا اینو گفتم؟
صبر کن و تا اخر بخون...
دو تا واژه زیر رو ببین
Pull کشیدن
Push هل دادن
شما وقتی به سرور یه رکوئست میزنی و یه چیزی ازش میگیری در واقع داری یه اطلاعاتی رو از سرور واکشی میکنی (pull)
وقتی که سرور توی یه فرایند real time برات یه event میفرسته داره یه چیزی رو به سمت تو push میکنه.
🔥حالا بیایم توی دنیای خودمون و دنیای فانکشن ها.
یه فانکشن معمولی رو در نظر بگیر.
هر موقع این فانکشن رو صدا بزنی یه عملیاتی انجام میده و همون موقع یه خروجی بهت تحویل میده.
یعنی اینکه تو تصمیم میگیری که کی و چه زمانی از اون فانکشن اطلاعات بگیری ( هر موقع صداش بزنی بلافاصله بهت جواب میده پس تو با اختیار عملی که داری تصمیم میگیری که کی صداش بزنی و کی اطلاعات رو بگیری)
🔥پس به فانکشن های معمولی که هر موقع صداشون بزنی یه خروجی (همون لحظه) بهت میدن میتونیم بگیم که از نوع pull هستن.
🔥در مقابل اینا یه نوع دیگه از فانکشن ها هستن که همون موقع که صداش بزنی بهت خروجی رو نمیده و میگه صبر کن صبر کن صبر کن صبر کن.... تا من در اینده بهت یه جوابی بدم
بهت میگه منو ک صدا زدی میتونی بری به کارای دیگت برسی و من در اینده یه جوابی رو برات push میکنم.
در واقع اینجا اختیار عمل اینکه که چه زمانی جواب بیاد دیگه با تو نیست (مثل همون پوش نوتیف که از سرور میومد و نمیدونستی که قراره کی بیاد)
🔥پس دو نوع فانکشن داریم :
✔️معمولی :
✅همون موقع کال شدن جواب میده
✅ما اختیار داریم که کی اطلاعات ازش بگیریم.
✅از نوع pull هست.
✔️نوع Future
✅همون موقع کال شدن جواب رو برنمیگردونه و در اینده یه جوابی رو برامون push میکنه
✅اختیار اینکه که کی جواب بیاد دیگه با ما نیست
✅از نوع push هست.
#capsule #dart
Pure Coder
💊Capsule ⚡️⚡️Future⚡️⚡️ 1⃣ همتون تا حالا کلمه پوش نوتیفیکشن رو شنیدین.. وقتی که یه event رو از سمت سرور میفرستیم به سمت کلاینت، اصطلاحن میگیم که داریم اون event رو push میکنیم. حالا چرا اینو گفتم؟ صبر کن و تا اخر بخون... دو تا واژه زیر رو ببین Pull…
البته واقعیتش دو نوع فانکشن نداریم 😅
۴ نوع داریم 😁
ولی اینجا ساده کردم گفتم دو نوع😅
۴ نوع داریم 😁
ولی اینجا ساده کردم گفتم دو نوع😅
💊Capsule
⚡️⚡️Future⚡️⚡️
2⃣
حالا از اون پرت و بلاهایی که توی پست قبلی گفتم 😂😂فاصله بگیریم و ببیینم که future در عمل چکار میکنه.
❓چطوری یک function رو future کنیم.
myFunc() async{}
این رو که همه میدونن، مگه نه؟
با گذاشتن کلمه کلیدی async باعث میشیم که فانکشن مورد نظر future بشه و مقداری که بر میگردونه از نوع future باشه.
ینی چی؟ 🤔
ینی قبلن میگفتیم...
String myFunc() {... }
هر موقع اینو کال میکردیم یه String بهمون میداد .
ولی الان میگیم...
Future<String> myFunc() async {.... }
و هر موقع اینو کال میکنیم یه
Future<String>
بهمون میده.
❓حالا این دقیقن ینی چه؟ 🤔
بهش فک کنید...
دقیق فک کنید.
توی پست های بعدی بازش میکنیم.
#dart #capsule
⚡️⚡️Future⚡️⚡️
2⃣
حالا از اون پرت و بلاهایی که توی پست قبلی گفتم 😂😂فاصله بگیریم و ببیینم که future در عمل چکار میکنه.
❓چطوری یک function رو future کنیم.
myFunc() async{}
این رو که همه میدونن، مگه نه؟
با گذاشتن کلمه کلیدی async باعث میشیم که فانکشن مورد نظر future بشه و مقداری که بر میگردونه از نوع future باشه.
ینی چی؟ 🤔
ینی قبلن میگفتیم...
String myFunc() {... }
هر موقع اینو کال میکردیم یه String بهمون میداد .
ولی الان میگیم...
Future<String> myFunc() async {.... }
و هر موقع اینو کال میکنیم یه
Future<String>
بهمون میده.
❓حالا این دقیقن ینی چه؟ 🤔
بهش فک کنید...
دقیق فک کنید.
توی پست های بعدی بازش میکنیم.
#dart #capsule
💊Capsule
⚡️⚡️Future⚡️⚡️
3⃣
گفتیم که با async کردن یه فانکشن نوع خروجی اون از جنس Future میشه.
❓خب Future چی هست؟ 🤔
A Future is an object that will be completed in the future with a value or an error.
گفتم یکم انگلیسی هم بخونید 😅
این جمله چی میگه؟ 🤔
میگه future یک object هست که در آینده با یک مقدار (value )یا یک ارور تکمیل میشه.
🔥ینی شما یک فانکشن async رو کال میکنی و این فانکشن به شما یه object از جنس Future برمیگردونه.
این Future object به خودی خودش و در اون لحظه هیچی نداره و میگه من در اینده مشخص میشه که چه چیزی دارم.
✔️حالا در اینده ممکنه با یه مقدار یا value تکمیل بشم و یه مقدار به تو بدم.
✔️یا ممکنه با یه ارور تکمیل بشم و یه ارور بهت بدم.
🔥پس تو باید هر دو حالت رو در نظر بگیری
🔥یه future دو حالت داره یا value یا error و هر دو رو باید در نظر بگیری.
🔥مقداری که future باهاش ممکنه تکمیل بشه رو با generic type اش مشخص میکنیم.
مثلن
Future<String>
یا با یه ولیو از جنس String تکمیل میشه یا با یه ارور.
🔥نکته مهم.
به جمله انگلیسی که نوشتم توجه کنید
نوشتم
will ....
کسایی که گرامر زبان میدونن (البته من هیچ ادعایی در زبان ندارم 😅🤦♂)
ولی با این ساختار یه جورایی دارم یه پیش بینی میکنم....
ینی پیش بینی میکنم که این object در اینده با یه ولیو یا ارور تکمیل میشه.
یعنی ممکنه اصن توی life time اپ تکمیل هم نشه و تا اخر پا در هوا بمونه 😅
#dart #capsule
⚡️⚡️Future⚡️⚡️
3⃣
گفتیم که با async کردن یه فانکشن نوع خروجی اون از جنس Future میشه.
❓خب Future چی هست؟ 🤔
A Future is an object that will be completed in the future with a value or an error.
گفتم یکم انگلیسی هم بخونید 😅
این جمله چی میگه؟ 🤔
میگه future یک object هست که در آینده با یک مقدار (value )یا یک ارور تکمیل میشه.
🔥ینی شما یک فانکشن async رو کال میکنی و این فانکشن به شما یه object از جنس Future برمیگردونه.
این Future object به خودی خودش و در اون لحظه هیچی نداره و میگه من در اینده مشخص میشه که چه چیزی دارم.
✔️حالا در اینده ممکنه با یه مقدار یا value تکمیل بشم و یه مقدار به تو بدم.
✔️یا ممکنه با یه ارور تکمیل بشم و یه ارور بهت بدم.
🔥پس تو باید هر دو حالت رو در نظر بگیری
🔥یه future دو حالت داره یا value یا error و هر دو رو باید در نظر بگیری.
🔥مقداری که future باهاش ممکنه تکمیل بشه رو با generic type اش مشخص میکنیم.
مثلن
Future<String>
یا با یه ولیو از جنس String تکمیل میشه یا با یه ارور.
🔥نکته مهم.
به جمله انگلیسی که نوشتم توجه کنید
نوشتم
will ....
کسایی که گرامر زبان میدونن (البته من هیچ ادعایی در زبان ندارم 😅🤦♂)
ولی با این ساختار یه جورایی دارم یه پیش بینی میکنم....
ینی پیش بینی میکنم که این object در اینده با یه ولیو یا ارور تکمیل میشه.
یعنی ممکنه اصن توی life time اپ تکمیل هم نشه و تا اخر پا در هوا بمونه 😅
#dart #capsule
💊Capsule
⚡️⚡️Future⚡️⚡️
4⃣
خب گفتم که وقتی که یه async function رو کال میکنیم یه object از جنس Future بر میگردونه که در اون لحظه هیچی نداره و در اینده با یه value یا یه error تکمیل میشه.
❓حالا برای هندل کردنش چکار کنیم؟
🔥دو راه داریم :
✅استفاده از low level APIs
✅استفاده از high level built in APIs
هر دو روش معادل هم هستن، که توی پست های آینده اون ها رو بررسی میکنیم.
#capsule #dart
⚡️⚡️Future⚡️⚡️
4⃣
خب گفتم که وقتی که یه async function رو کال میکنیم یه object از جنس Future بر میگردونه که در اون لحظه هیچی نداره و در اینده با یه value یا یه error تکمیل میشه.
❓حالا برای هندل کردنش چکار کنیم؟
🔥دو راه داریم :
✅استفاده از low level APIs
✅استفاده از high level built in APIs
هر دو روش معادل هم هستن، که توی پست های آینده اون ها رو بررسی میکنیم.
#capsule #dart
💊Capsule
⚡️⚡️Future⚡️⚡️
5⃣
روش اول
✅Low level APIs
.. then()
.catchError()
.whenComplete()
وقتی یک object از جنس Future داریم میتونیم این متد ها رو به صورت زجزیره وار(chain) روش کال کنیم.
🔥هر کدوم از این متد ها یه کالبک میگیرن و در شرایط خاصی اون کالبک ها اجرا میشن :
✅then
یه کالبک به این شکل میگیره و هر وقت فیوچر با یه ولیو تکمیل شه اجرا میشه.
✅catchError
یه کالبک به این شکل میگیره و هر وقت فیوچر با یه ارور تکمیل شه اجرا میشه.
🔥هم then و هم catchError یه ورودی دوم هم میگیرن که فعلن ازشون صرف نظر میکنیم.
✅whenComplete
یه کالبک به این شکل میگیره که وقتی که فیوچر تکمیل شه (چه با value چه با error ) اجرا میشه.
پس :
✔️if the future is completed with a value, the then callback will be executed.
✔️If the future is completed with an error, the catchError callback will be executed.
✔️when the future is completed (with a value or an error), the whenComplete callback will be executed.
#dart #capsule
⚡️⚡️Future⚡️⚡️
5⃣
روش اول
✅Low level APIs
.. then()
.catchError()
.whenComplete()
وقتی یک object از جنس Future داریم میتونیم این متد ها رو به صورت زجزیره وار(chain) روش کال کنیم.
🔥هر کدوم از این متد ها یه کالبک میگیرن و در شرایط خاصی اون کالبک ها اجرا میشن :
✅then
then((T value) {
.....
})
یه کالبک به این شکل میگیره و هر وقت فیوچر با یه ولیو تکمیل شه اجرا میشه.
✅catchError
catchError((Object error, StackTrace st) {
...
})
یه کالبک به این شکل میگیره و هر وقت فیوچر با یه ارور تکمیل شه اجرا میشه.
🔥هم then و هم catchError یه ورودی دوم هم میگیرن که فعلن ازشون صرف نظر میکنیم.
✅whenComplete
whenComplete (() {
.....
})
یه کالبک به این شکل میگیره که وقتی که فیوچر تکمیل شه (چه با value چه با error ) اجرا میشه.
پس :
✔️if the future is completed with a value, the then callback will be executed.
✔️If the future is completed with an error, the catchError callback will be executed.
✔️when the future is completed (with a value or an error), the whenComplete callback will be executed.
#dart #capsule
💊Capsule
⚡️⚡️Future⚡️⚡️
6⃣
✅High level built in APIs
معادل مواردی که توی پست قبلی گفتم رو میتونیم به این شکل داشته باشیم :
✅بلوک try که داخلش await قرار میگیره معادل then هست .
✅بلوک catch معادل catchError هست .
✅بلوک finally معادل whenComplete هست.
#dart #capsule
⚡️⚡️Future⚡️⚡️
6⃣
✅High level built in APIs
معادل مواردی که توی پست قبلی گفتم رو میتونیم به این شکل داشته باشیم :
try{
await future;
}catch (error) {
....
}finally{
....
}
✅بلوک try که داخلش await قرار میگیره معادل then هست .
✅بلوک catch معادل catchError هست .
✅بلوک finally معادل whenComplete هست.
#dart #capsule
🔥Challenge
⚡️⚡️Stream⚡️⚡️
هر چی راجب استریم ها میدونی بگو...
چی هستن🤔
به چه دردی میخورن
#dart_challenge #dart
⚡️⚡️Stream⚡️⚡️
هر چی راجب استریم ها میدونی بگو...
چی هستن🤔
به چه دردی میخورن
#dart_challenge #dart
Screenshot from 2022-03-04 20-05-40.png
119.4 KB
🔥یه فانکشن که از کد های قدیمیم که به زبان TypeScript نوشته بودم پیدا کردم و به Dart ترجمش کردم 😅
🔥میتونید برای اعتبار سنجی Email ازش استفاده کنید
اینم Regexp :
const emailRegexp =
🔥میتونید برای اعتبار سنجی Email ازش استفاده کنید
اینم Regexp :
const emailRegexp =
r"""^[-!#$%&'*+\/0-9=?A-Z^_a-z
{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$""";
Screenshot from 2022-03-04 23-08-47.png
46.9 KB
🔥Challenge
یه ساختاری داریم به شکل بالا.
این ساختار به این شکل هست که یه Map داریم که key های اون String هست و Value ها یا به صورت String هست و یا به صورت یه Map .
و این روند ادامه داره.... هر value میتونه یه String باشه یا خودش یه Map باشه.
🔥مقادیر value ها نباید چیزی غیر از String ویا Map باشن ..
❓❓حالا یه کدی بنویسید که یه Map ورودی با این فرمت (که معلوم نیست این روند تو در تو تا کجا ادامه داره) رو تحلیل کنه اگه یه value پیدا کرد جنسش چیزی غیر از String یا Map بود مقدار false رو برگردونه و اگه تا اخر پیش رفت و همه چیز درست بود مقدار true رو برگردونه.
پ.ن: مقادیر key و value که اینجا نوشتم مثال هست و به این مقادیر توجه نکنید و مهم نیست که چی باشن.
فقط جنس ها مهمه :
Key: String
Value: String or Map
و ساختار توی در تو بودن
#challenge
#dart_challenge
یه ساختاری داریم به شکل بالا.
این ساختار به این شکل هست که یه Map داریم که key های اون String هست و Value ها یا به صورت String هست و یا به صورت یه Map .
و این روند ادامه داره.... هر value میتونه یه String باشه یا خودش یه Map باشه.
🔥مقادیر value ها نباید چیزی غیر از String ویا Map باشن ..
❓❓حالا یه کدی بنویسید که یه Map ورودی با این فرمت (که معلوم نیست این روند تو در تو تا کجا ادامه داره) رو تحلیل کنه اگه یه value پیدا کرد جنسش چیزی غیر از String یا Map بود مقدار false رو برگردونه و اگه تا اخر پیش رفت و همه چیز درست بود مقدار true رو برگردونه.
پ.ن: مقادیر key و value که اینجا نوشتم مثال هست و به این مقادیر توجه نکنید و مهم نیست که چی باشن.
فقط جنس ها مهمه :
Key: String
Value: String or Map
و ساختار توی در تو بودن
#challenge
#dart_challenge
Pure Coder
جواب Challenge
علاوه بر رسیدن به جواب و حل کردن مساله به تمیز نوشتن و خوانا بودن هم دقت کنید
🔥تجربه شخصی و صرفن نظر شخصی خودم :
توی کدهام تا جایی که بتونم از ساختار if...else یا else if استفاده نمیکنم (مگر اینکه مجبور بشم)
و به جاش از if های پشت سر هم استفاده میکنم و به نظرم این باعث خطی شدن ساختار کد و جلوگیری از تو در تو شدنش میشه و باعث میشه کد تمیز تر و خواناتر بشه.
🔥تجربه شخصی و صرفن نظر شخصی خودم :
توی کدهام تا جایی که بتونم از ساختار if...else یا else if استفاده نمیکنم (مگر اینکه مجبور بشم)
و به جاش از if های پشت سر هم استفاده میکنم و به نظرم این باعث خطی شدن ساختار کد و جلوگیری از تو در تو شدنش میشه و باعث میشه کد تمیز تر و خواناتر بشه.
Forwarded from ترفند مدیریت
🔳⭕️نصیحتی که استیو جابز هرگز فراموش نکرد.
🔴اکثر افراد شرکت اپل را برای تعهدش به طراحی زیبا میشناسند، فردی که باید مورد تشکر قرار گیرد، پاول جابز، پدرخواندهی استیو جابز است!
🔴والتر ایزاکسون، زندگینامهنویس جابز، در مصاحبهاش با شبکهی CBS گفت: پاول جابز یک مکانیک فوقالعاده بود. او به پسرش استیو یاد داد که چگونه چیزهای عالی بسازد. آنها روزی در حال ساختن یک حصار بودند. پاول به پسرش گفت: "تو باید پشت حصار را هم به همان خوبی جلوی آن درست و رنگ کنی. هرچند که ممکن است کمتر کسی آنجا را ببیند، اما خودت که میبینی. درست کردن پشت حصار نشان میدهد که تو میتوانی وسایل را کامل و بینقص بسازی."
#استیو_جابز
🔹با ما همراه باشید در:
🌐کانال ترفند مدیریت👇👇
Instagram | Telegram | Linkedin
🔴اکثر افراد شرکت اپل را برای تعهدش به طراحی زیبا میشناسند، فردی که باید مورد تشکر قرار گیرد، پاول جابز، پدرخواندهی استیو جابز است!
🔴والتر ایزاکسون، زندگینامهنویس جابز، در مصاحبهاش با شبکهی CBS گفت: پاول جابز یک مکانیک فوقالعاده بود. او به پسرش استیو یاد داد که چگونه چیزهای عالی بسازد. آنها روزی در حال ساختن یک حصار بودند. پاول به پسرش گفت: "تو باید پشت حصار را هم به همان خوبی جلوی آن درست و رنگ کنی. هرچند که ممکن است کمتر کسی آنجا را ببیند، اما خودت که میبینی. درست کردن پشت حصار نشان میدهد که تو میتوانی وسایل را کامل و بینقص بسازی."
#استیو_جابز
🔹با ما همراه باشید در:
🌐کانال ترفند مدیریت👇👇
Instagram | Telegram | Linkedin
Pure Coder
🔳⭕️نصیحتی که استیو جابز هرگز فراموش نکرد. 🔴اکثر افراد شرکت اپل را برای تعهدش به طراحی زیبا میشناسند، فردی که باید مورد تشکر قرار گیرد، پاول جابز، پدرخواندهی استیو جابز است! 🔴والتر ایزاکسون، زندگینامهنویس جابز، در مصاحبهاش با شبکهی CBS گفت: پاول جابز…
درس برنامه نویسی از پدرخوانده استیو:
اقا کدهایی که مینویسید فقط یه چیزی ننویسید که کار کنه.
فقط کار کردن مهم نیست. ...
جان هر کی دوست دارید تمیز بنویسید..
فکر کنید برای کدی که قراره بنویسید...
همین جوری نرید توی کد و تق تق تق بزنید تو سر کیبرد و کد بزنید و تهشم یه چیزی در بیاد که از اژدهای دوسر ترسناک تر...
قبلش اصن سیستم رو خاموش کنید و بشینید فکر کنید...
اگه نیاره یه کاغذ بذارید جلوتون و فکرتون رو بنویسید ....
خوب فکر کنید و تحلیل کنید و یه چیز تر و تمیز بنویسید و لذت ببرید. ...
اگه لذت نمیبرید این شغل به درد شما نمیخوره...
و اگه خوب کد نمیزنید و هیچ تلاشی برای بهتر شدن و خوب کد زدن نمیکنید یعنی لذت نمیبرید....
اقا کدهایی که مینویسید فقط یه چیزی ننویسید که کار کنه.
فقط کار کردن مهم نیست. ...
جان هر کی دوست دارید تمیز بنویسید..
فکر کنید برای کدی که قراره بنویسید...
همین جوری نرید توی کد و تق تق تق بزنید تو سر کیبرد و کد بزنید و تهشم یه چیزی در بیاد که از اژدهای دوسر ترسناک تر...
قبلش اصن سیستم رو خاموش کنید و بشینید فکر کنید...
اگه نیاره یه کاغذ بذارید جلوتون و فکرتون رو بنویسید ....
خوب فکر کنید و تحلیل کنید و یه چیز تر و تمیز بنویسید و لذت ببرید. ...
اگه لذت نمیبرید این شغل به درد شما نمیخوره...
و اگه خوب کد نمیزنید و هیچ تلاشی برای بهتر شدن و خوب کد زدن نمیکنید یعنی لذت نمیبرید....
Pure Coder
https://github.com/mohammadtaherri/dart_specification
حال نداشتم براش README بنویسم 😅
برید سورس رو بخونید ببینید چیه 😂😂
برید سورس رو بخونید ببینید چیه 😂😂
Pure Coder
https://github.com/mohammadtaherri/dart_specification
بچها این specification pattern هست
تا حالا همتون این رو دیدید که مثلن ی لیست از اطلاعات دارید و داخلش سرچ میکنید (توی دارت where)
مثلن میگید عناصری که فلان ویژگی ها رو دارن رو میخام
یا ی دیتابیس دارین و روش کوئری میزنید
این پترن هم خیلی سادس
ی اینترفیس هست ک ی متد داره
bool isSatisfiedBy(T candidate)
ی ابجکت میگیره و یه شرط رو روش بررسی میکنه که اگه برقرار بود true و اگه نبود false برمیگردونه
حالا برای هر ابجکتی که داریم میتونیم کلاس های spec مختلف تعریف کنیم که هر کدوم ی شرط خاص رو بررسی میکنه و بعد با اپراتور های and و Or و... اون ها رو بهم chain کنیم و ی زنجیره از spec ها بسازیم.
هر کلاس spec یه ویژگی خاص رو بررسی میکنه و با chain کردن کلاس های مختلف بهم با and و Or میتونیم spec های متفاوت ایجاد کنیم.
اگرم نفهمیدید سخت نگیرید 😅 زیاد تلاش نکنید برای فهمیدن
کاربردش که پیش بیاد میفهمید 😅
اگرم کاربردش پیش نیومد که چه بهتر 😂😂
تا حالا همتون این رو دیدید که مثلن ی لیست از اطلاعات دارید و داخلش سرچ میکنید (توی دارت where)
مثلن میگید عناصری که فلان ویژگی ها رو دارن رو میخام
یا ی دیتابیس دارین و روش کوئری میزنید
این پترن هم خیلی سادس
ی اینترفیس هست ک ی متد داره
bool isSatisfiedBy(T candidate)
ی ابجکت میگیره و یه شرط رو روش بررسی میکنه که اگه برقرار بود true و اگه نبود false برمیگردونه
حالا برای هر ابجکتی که داریم میتونیم کلاس های spec مختلف تعریف کنیم که هر کدوم ی شرط خاص رو بررسی میکنه و بعد با اپراتور های and و Or و... اون ها رو بهم chain کنیم و ی زنجیره از spec ها بسازیم.
هر کلاس spec یه ویژگی خاص رو بررسی میکنه و با chain کردن کلاس های مختلف بهم با and و Or میتونیم spec های متفاوت ایجاد کنیم.
اگرم نفهمیدید سخت نگیرید 😅 زیاد تلاش نکنید برای فهمیدن
کاربردش که پیش بیاد میفهمید 😅
اگرم کاربردش پیش نیومد که چه بهتر 😂😂
ان شاالله یه نفر از این جمع به نمایندگی از همه سال ۱۵۰۰ رو هم تجربه کنه 😂😂 و از تکنولوژی های اون زمان به خصوص هوش مصنوعی که دیگه باید به اوج خودش رسیده باشه لذت ببره 😂😂😍😍