Задача 1: C# Code Review
Прилетел код на ревью, какие комменты оставишь?
using System;
using System.Collections.Generic;
using System.Linq;
var logger = new Logger(new ConsoleLogger());
logger.Log("Log","LogLine1");
logger.Log("Log","LogLine2");
logger.Log(new ArgumentException("AAA!"));
logger.Flush();
interface IInternalLogger{
void Log(string s);
}
class ConsoleLogger: IInternalLogger{
public void Log(string s){
Console.WriteLine(s);
}
}
class Logger
{
public Dictionary<string,string> buffer = new Dictionary<string,string>();
public IInternalLogger internalLogger = null!;
public Logger(IInternalLogger loggerImpl){
internalLogger = loggerImpl;
}
public void Log(string key, string value){
lock(buffer){
if (buffer.Count() > 1024){
throw new Exception("log overflow");
}
if(!buffer.ContainsKey(key))
buffer.Add(key,value);
else buffer[key] += "; " + value;
}
}
public void Log(Exception e) => Log("Exception", e.GetType()+ " : " + e.Message);
public void Flush(){
var logString = ConvertToString(buffer.Select(x => x.Key + ":" + x.Value).ToList());
internalLogger.Log(logString);
buffer.Clear();
}
public string ConvertToString(IList<string> list){
string logString = "";
for(int i = 0; i < buffer.Count(); ++i){
logString = logString + list[i]+ "n";
}
return logString;
}
}
Задача 2: SQL
create table gifts (clan text, user_from text, user_to text);
INSERT INTO gifts (clan, user_from, user_to) values ('ru','vasia','kolya');
INSERT INTO gifts (clan, user_from, user_to) values ('ru','kolya','misha');
INSERT INTO gifts (clan, user_from, user_to) values ('usa','mike','jon');
INSERT INTO gifts (clan, user_from, user_to) values ('usa','mike','ken');
INSERT INTO gifts (clan, user_from, user_to) values ('usa','ken','barbie');
INSERT INTO gifts (clan, user_from, user_to) values ('china','csi','li');
INSERT INTO gifts (clan, user_from, user_to) values ('usa','csi','one');
INSERT INTO gifts (clan, user_from, user_to) values ('usa','csi','xhuy');
используя 1 зарос для каждой задачи надо:
- найти клан где подарили больше всего подарков
- найти 2 клана где больше всего уникальных получаетелей и имя подарившего больше всего подарков
- найти 2 клана где больше всего уникальных получаетелей и имена 2х подаривших больше всего подарков