ProMohammad
سه شنبه 16 بهمن 1397, 23:14 عصر
با سلام خدمت دوستان عزیز
من چند وقته که ضمن خواندن درس برنامه نویسی و کلاسهای آموزشی موسسات
دنبال کار در شرکت هستم تا تجربه اندوزی کنم
چند هفته هست از این شرکت به اون شرکت جهت مصاحبه حضوری میرم و همگی میگن با شما تماس میگیریم که دریغ از یک تماس خشک و خالی که بگن نخواستیم نیا و حسابی توی ذوقم خورده با این چند سال وقتی که صرف یادگیری این حرفه کردم
امروز یک شرکت رفتم و یک سوال به من دادند تا اگر حل کنم به عنوان کارآموز و بعد استخدام من رو جذب کنند سوال برای کسی که تجربه حرفه ای نداشته و تئوری خوانده مشکل هست و برای شاغلان در این حرفه ساده لطفا من رو یاری کنید تا با حل این سوال از بیکاری خلاص شم
بیشتر دنبال مفاهیم SOLID و ِDependency Injection و استفاده از اینترفیس بودند و Clean Code و نوشتن داکیومنت برای کدها
کسی میدونه ایرادات این کد چیه؟؟
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.IO;
namespace InterviewTest.Controllers
{
public class EMailController : Controller
{
const string logFile = "log.txt";
// این یک متد است که شناسه یا نام کاربری یکی کاربر را گرفته و
// بعد از جستجو در دیتابیس یک ایمیل برای او ارسال میکند.
// سپس این عملیات در یک فایل لاگ ثبت میشود.
public ActionResult Index()
{
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password = myPassword;";
SqlConnection con = new SqlConnection(connectionString);
con.Open();
SqlCommand cmd = new SqlCommand("select * from tblUsers where id = " + int.Parse(Request.QueryString["id"]) + " or username = '" + Request.QueryString["username"] + "'" , con);
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
string email = reader.GetString(2);
emailer.Instance.send(email);
FileStream fs = System.IO.File.OpenWrite("c:\\myapp\\" + logFile);
StreamWriter sw = new StreamWriter(fs);
sw.Write(DateTime.Now.ToString() + " sent email to " + email);
fs.Close();
return View();
}
// این یک کلاس است که وظیفه ارسال ایمیل را بر عهده دارد
public class emailer
{
private static emailer instance = null;
public static emailer Instance
{
get {
if (instance == null)
{
instance = new emailer();
}
return instance;
}
}
internal void send(string email) {
try {
// فرض کنید این تکه از کد پیاده سازی شده است
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
}
}
}
}
من چند وقته که ضمن خواندن درس برنامه نویسی و کلاسهای آموزشی موسسات
دنبال کار در شرکت هستم تا تجربه اندوزی کنم
چند هفته هست از این شرکت به اون شرکت جهت مصاحبه حضوری میرم و همگی میگن با شما تماس میگیریم که دریغ از یک تماس خشک و خالی که بگن نخواستیم نیا و حسابی توی ذوقم خورده با این چند سال وقتی که صرف یادگیری این حرفه کردم
امروز یک شرکت رفتم و یک سوال به من دادند تا اگر حل کنم به عنوان کارآموز و بعد استخدام من رو جذب کنند سوال برای کسی که تجربه حرفه ای نداشته و تئوری خوانده مشکل هست و برای شاغلان در این حرفه ساده لطفا من رو یاری کنید تا با حل این سوال از بیکاری خلاص شم
بیشتر دنبال مفاهیم SOLID و ِDependency Injection و استفاده از اینترفیس بودند و Clean Code و نوشتن داکیومنت برای کدها
کسی میدونه ایرادات این کد چیه؟؟
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.IO;
namespace InterviewTest.Controllers
{
public class EMailController : Controller
{
const string logFile = "log.txt";
// این یک متد است که شناسه یا نام کاربری یکی کاربر را گرفته و
// بعد از جستجو در دیتابیس یک ایمیل برای او ارسال میکند.
// سپس این عملیات در یک فایل لاگ ثبت میشود.
public ActionResult Index()
{
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password = myPassword;";
SqlConnection con = new SqlConnection(connectionString);
con.Open();
SqlCommand cmd = new SqlCommand("select * from tblUsers where id = " + int.Parse(Request.QueryString["id"]) + " or username = '" + Request.QueryString["username"] + "'" , con);
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
string email = reader.GetString(2);
emailer.Instance.send(email);
FileStream fs = System.IO.File.OpenWrite("c:\\myapp\\" + logFile);
StreamWriter sw = new StreamWriter(fs);
sw.Write(DateTime.Now.ToString() + " sent email to " + email);
fs.Close();
return View();
}
// این یک کلاس است که وظیفه ارسال ایمیل را بر عهده دارد
public class emailer
{
private static emailer instance = null;
public static emailer Instance
{
get {
if (instance == null)
{
instance = new emailer();
}
return instance;
}
}
internal void send(string email) {
try {
// فرض کنید این تکه از کد پیاده سازی شده است
}
catch (Exception ex)
{
Console.Write(ex.ToString());
}
}
}
}
}