هوش مصنوعی امروزه دقیقن انسان رو توی همون راستایی که داره حرکت میکنه تقویتش میکنه.
اگه یه انسان دانا، با دانش و متخصص ازش استفاده کنه، در مدت زمان کمتر به تولید محصول باکیفیت تر کمک میکنه.
اگه یه انسان خنگ، احمق و غیر متخصص ازش استفاده کنه هم در همون جهت به تولید یه محصول آشغال کمک میکنه. چون کار اون آدم تولید آشغال بوده و هوش مصنوعی هم کمکش میکنه.
سعی کن در درجه ی اول متخصص باشی و خنگ نباشی.
@purecoder_ir
اگه یه انسان دانا، با دانش و متخصص ازش استفاده کنه، در مدت زمان کمتر به تولید محصول باکیفیت تر کمک میکنه.
اگه یه انسان خنگ، احمق و غیر متخصص ازش استفاده کنه هم در همون جهت به تولید یه محصول آشغال کمک میکنه. چون کار اون آدم تولید آشغال بوده و هوش مصنوعی هم کمکش میکنه.
سعی کن در درجه ی اول متخصص باشی و خنگ نباشی.
@purecoder_ir
وقتی میبینم بعد این همه داد و فریاد که انقدر اضافه کاری نکنید و توی آپ های موبایل این معماری ها رو به کار نبرید و هنوز یه عده آموزشش میدن (اشتباه هم آموزش میدن) و یه عده هم با اشتیاق استفاده میکنن.😜
@purecoder_ir
@purecoder_ir
چیزی که گوگل برای معماری آپ های فلاتری پیشنهاد داده یک معماری لایه ای هست که وقتی بیزینس لاجیک داشته باشید یه چیزی شبیه به معماری هایی مثل کلین میشه (حتمن نباید اسمش آورده بشه...شبیهن) و وقتی که بیزینس لاجیک نداشته باشید یک معماری دو لایه خواهد بود.
همون چیزی که بارها میگفتیم که در عدم حضور بیزینس لاجیک (که توی اکثر اپ های موبایل رایجع) نیاری به لایه ها و کارهای اضافی نیست👍
امید است که پند بگیرید.
@purecoder_ir
همون چیزی که بارها میگفتیم که در عدم حضور بیزینس لاجیک (که توی اکثر اپ های موبایل رایجع) نیاری به لایه ها و کارهای اضافی نیست👍
امید است که پند بگیرید.
@purecoder_ir
کدوم پترن به اضافه کردن Middleware به پروسه ی اصلی کمک میکنه ؟
Anonymous Quiz
10%
Visitor
24%
Adapter
12%
Decorator
6%
Command
48%
نمیدونم، دیدن جواب
همیشه توی هر دوره ی آموزشی(با هر عنوانی، دوره برنامه نویسی، پکیج موفقیت و ...) ده تا بیست درصد افراد شرکت کننده موفق میشن. (در مورد درصد دقیق میشه بحث کرد و محل بحث فعلی ما نیست)
این ۲۰ درصد موفق، نشون دهنده ی خوب بودن دوره ی مورد نظر نیستن، چرا که این ها در هر صورت و با یکم بالا پایین موفق میشدن.
حالا من یه دوره درست میکنم و بعد از اتمام اون دوره ۲۰ درصد موفق رو بولد میکنم و میکنم توی چشم مخاطب و هیچ حرفی از ۸۰ درصدی که هیچی نشدن نمیزنم.
همه هم میگن عجب دوره ای، بهتر از این نمیشه 😳😳😳
@purecoder_ir
این ۲۰ درصد موفق، نشون دهنده ی خوب بودن دوره ی مورد نظر نیستن، چرا که این ها در هر صورت و با یکم بالا پایین موفق میشدن.
حالا من یه دوره درست میکنم و بعد از اتمام اون دوره ۲۰ درصد موفق رو بولد میکنم و میکنم توی چشم مخاطب و هیچ حرفی از ۸۰ درصدی که هیچی نشدن نمیزنم.
همه هم میگن عجب دوره ای، بهتر از این نمیشه 😳😳😳
@purecoder_ir
❓اگه در حین کلین کردن و ریفکتور کردن کد فهمیدیم که کاری که داریم در جهت کلین و خوانا تر کردن کد انجام میدیم، پرفورمنس رو یکم خراب میکنه، تکلیف چیه؟
✅مارتین فاولر میگه به ریفکتور کردنت ادامه بده و کدت رو کلین کن و بعدش اگه واقعن مشکل پرفورمنس داشتی حلش کن.
✅باب مارتین و Kent Beck میگن مشکلات پرفورمنسی رو تا خودشون رو نشون ندادن، الکی خودتو درگیرش نکن.
🔥در کل در مورد پرفورمنس نباید به صورت حسی عمل کنیم و بخوایم وسواس زیاد به خرج بدیم، باید اجازه بدیم هر موقع واقعن خودشو نشون داد، اقدام کنیم.
🔥این به معنای بد کد زدن نیست، فقط وسواس نداشته باشیم. در هر صورت تجربه های قبلی میتونن خیلی کمک کننده باشن.
🔥بعضی مواقع ممکنه بهبود پرفورمنس باعث بشه کد یکم ناخواناتر بشه. (ممکنه)
@purecoder_ir
✅مارتین فاولر میگه به ریفکتور کردنت ادامه بده و کدت رو کلین کن و بعدش اگه واقعن مشکل پرفورمنس داشتی حلش کن.
✅باب مارتین و Kent Beck میگن مشکلات پرفورمنسی رو تا خودشون رو نشون ندادن، الکی خودتو درگیرش نکن.
🔥در کل در مورد پرفورمنس نباید به صورت حسی عمل کنیم و بخوایم وسواس زیاد به خرج بدیم، باید اجازه بدیم هر موقع واقعن خودشو نشون داد، اقدام کنیم.
🔥این به معنای بد کد زدن نیست، فقط وسواس نداشته باشیم. در هر صورت تجربه های قبلی میتونن خیلی کمک کننده باشن.
🔥بعضی مواقع ممکنه بهبود پرفورمنس باعث بشه کد یکم ناخواناتر بشه. (ممکنه)
@purecoder_ir
تیم های مختلف یک سازمان نباید انقدری بزرگ بشن که مدیریت تیم و ارتباط و هماهنگی بین اعضای تیم سخت بشه.
توی آمازون از این قانون دم دستی استفاده میکنن 👆👆
@purecoder_ir
توی آمازون از این قانون دم دستی استفاده میکنن 👆👆
@purecoder_ir
بنظرت input validation (ورودی های کاربر) چه لاجیکی محسوب میشه؟
(میتونه آپ بکند باشه و مثلن body متد post رو در نظر بگیریم، یا آپ فرانت باشه و ...)
(اگه توضیحی داری کامنت بگذار)
(میتونه آپ بکند باشه و مثلن body متد post رو در نظر بگیریم، یا آپ فرانت باشه و ...)
(اگه توضیحی داری کامنت بگذار)
Anonymous Poll
67%
Presentation Logic
11%
Datasource Logic
22%
Domain Logic
توسعه ی نرم افزار مثل کار متخصص های زیبایی نیست که یه قالب دارن و همه آدم ها رو یه شکل درست میکنن، باید هر جایی متناسب با خودش تصمیم گیری و عمل بشه. اینکه یه شابلون داشته باشیم و همه چیز رو شبیه هم دربیاریم، اینجا پذیرفته نیست.
@purecoder_ir
@purecoder_ir
🔥Declarative UI Frameworks
✅jetpack compose
✅swiftui
✅Flutter
🔥بنظرم فلاتر با فاصله ی زیاد قشنگتره و زبان دارت، زبانی مناسبتر برای این هدف
🟢شما هم میتونید نظرتون رو بگید...
@purecoder_ir
✅jetpack compose
@Composable
fun MyComponent(
displayString: String
) {
Text(displayString)
}
✅swiftui
struct MyComponent: View {
var displayString: String
var body: some View {
Text(displayString)
}
}
✅Flutter
class MyComponent extends StatelessWidget {
final String displayString;
MyComponent({required this.displayString});
@override
Widget build(BuildContext context) {
return Text(displayString);
}
}
🔥بنظرم فلاتر با فاصله ی زیاد قشنگتره و زبان دارت، زبانی مناسبتر برای این هدف
🟢شما هم میتونید نظرتون رو بگید...
@purecoder_ir
🔥Backend Frameworks
✅Asp.net Core
✅Laravel
✅Spring Boot
@purecoder_ir
✅Asp.net Core
[Route("api/[controller]")]
[ApiController]
public class GreetingController : ControllerBase
{
// GET api/greeting
[HttpGet]
public IActionResult Get()
{
return Ok("Hello from ASP.NET Core!");
}
}
✅Laravel
class GreetingController extends Controller
{
// GET /api/greeting
public function index()
{
return response()->json('Hello from Laravel!');
}
}
Route::get('greeting', [GreetingController::class, 'index']);
✅Spring Boot
@RestController
public class GreetingController {
// GET /api/greeting
@GetMapping("/api/greeting")
public String getGreeting() {
return "Hello from Spring Boot!";
}
}
@purecoder_ir
🔥Backend Frameworks
✅Vania
✅Nestjs
✅Ruby on Rails
@purecoder_ir
✅Vania
class GreetingController extends Controller
{
// GET /api/greeting
Future index() async
{
retuen Response.html('Hello From Vania');
}
}
Route.get('/greeting',GreetingController().index);
✅Nestjs
@Controller('api')
export class GreetingController {
@Get('greeting')
getGreeting(): string {
return 'Hello from NestJS!';
}
}
✅Ruby on Rails
class GreetingController < ApplicationController
def greeting
render json: { message: 'Hello from Ruby on Rails!' }
end
end
Rails.application.routes.draw do
get 'api/greeting', to: 'greeting#greeting'
end
@purecoder_ir
🔥 Test Frameworks
✅XUnit (C#)
✅JUnit (JAVA)
✅Dart
✅بهترین و مدرن ترین گزینه xunit هست. JUnit وصله پینه زیاد داره و با فرهنگ حال و حاضر مچ نیست، ولی قابل قبوله و همچنان یه گزینه خوب محسوب میشه.
✅دارت شبیه JUnit هست.
@purecoder_ir
✅XUnit (C#)
public class CalculatorTests
{
[Fact]
public void Add_TwoNumbers_ReturnsSum()
{
// Arrange
var a = 2;
var b = 3;
// Act
var result = Add(a, b);
// Assert
Assert.Equal(5, result);
}
private int Add(int x, int y)
{
return x + y;
}
}
✅JUnit (JAVA)
class CalculatorTests {
@Test
void add_TwoNumbers_ReturnsSum() {
// Arrange
int a = 2;
int b = 3;
// Act
int result = add(a, b);
// Assert
assertEquals(5, result);
}
private int add(int x, int y) {
return x + y;
}
}
✅Dart
void main() {
test('add_TwoNumbers_ReturnsSum', () {
// Arrange
final a = 2;
final b = 3;
// Act
final result = add(a, b);
// Assert
expect(result, equals(5));
});
}
✅بهترین و مدرن ترین گزینه xunit هست. JUnit وصله پینه زیاد داره و با فرهنگ حال و حاضر مچ نیست، ولی قابل قبوله و همچنان یه گزینه خوب محسوب میشه.
✅دارت شبیه JUnit هست.
@purecoder_ir
انیمیشن ها توی فلاتر از کدوم پترن استفاده میکنن ؟
Anonymous Quiz
10%
Decorator
12%
Composite
36%
Observer
4%
Visitor
38%
نمیدونم، دیدن جواب
توی فریمورک های موبایل مثل فلاتر یا کامپوز یا ... برای چیزایی مثل باتن ها، onClicked یا onPressed یا ... داریم که وقتی روشون tap میشه یه کاری انجام بدن.
اینجا از چه پترنی استفاده میشه؟
اینجا از چه پترنی استفاده میشه؟
Anonymous Quiz
9%
Proxy
23%
Template Method
27%
Observer
16%
Command
25%
نمیدونم، دیدن جواب
پترن ها مثل الفبا و زبان مشترک کدنویسی هستن.
توسعه دهنده های فریمورک ها باید به همه ی اون ها مسلط باشن و تجربه ی کافی در استفاده از اون ها رو داشته باشن.
بدون تسلط کامل به همه ی اونها امکان توسعه ی فریمورک خوب وجود نداره و با درک اون ها، درک فریمورک های استاندارد راحت میشه چون که همگی از یک زبان مشترک پیروی میکنن.
فریمورک های خوب رو از طریق نحوه ی استفاده شون از پترن های استاندارد تشخیص بدید.
پترن ها در جریان همین توسعه ها و چالش ها ابداع شدن و کاملن از دل تجربه بیرون اومدن و من درآوردی نیستن.
@purecoder_ir
توسعه دهنده های فریمورک ها باید به همه ی اون ها مسلط باشن و تجربه ی کافی در استفاده از اون ها رو داشته باشن.
بدون تسلط کامل به همه ی اونها امکان توسعه ی فریمورک خوب وجود نداره و با درک اون ها، درک فریمورک های استاندارد راحت میشه چون که همگی از یک زبان مشترک پیروی میکنن.
فریمورک های خوب رو از طریق نحوه ی استفاده شون از پترن های استاندارد تشخیص بدید.
پترن ها در جریان همین توسعه ها و چالش ها ابداع شدن و کاملن از دل تجربه بیرون اومدن و من درآوردی نیستن.
@purecoder_ir
یه بنده خدایی بود چندین سال پیش آموزش معماری کلین میداد ( الان خدا بیامرز شده و اصلن نیستش، نگین داری مدرس ها رو بدنام میکنی)
این بنده خدا برای هر موجودیتی چنتا کلاس کپی کپی هم میساخت و توی لایه های مختلف میذاشت...
مثلن
UserDo
UserData
User
اون که پسوند Do داشت رو میذاشت توی domain و اون که Data داشت هم که مشخصه و اون که هیچی نداشت هم توی view.
نمیدونم چرا خدا بیامرز از کلمه ی Do استفاده میکرد.
ما هم کپی میکردیم و مثل اون میرفتیم😂😂
@purecoder_ir
این بنده خدا برای هر موجودیتی چنتا کلاس کپی کپی هم میساخت و توی لایه های مختلف میذاشت...
مثلن
UserDo
UserData
User
اون که پسوند Do داشت رو میذاشت توی domain و اون که Data داشت هم که مشخصه و اون که هیچی نداشت هم توی view.
نمیدونم چرا خدا بیامرز از کلمه ی Do استفاده میکرد.
ما هم کپی میکردیم و مثل اون میرفتیم😂😂
@purecoder_ir