![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| ptybn8407 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 15.12.2011 Репутация: нет Всего: нет |
На собеседовании задали несколько вопросов. Получил отказ без пояснений. Хотелось бы узнать точные ответы на них.
1 вопрос. Пусть есть 2 таблицы table Table TableID int, ... table TableItem TableItemID int, TableID int, ... Пусть в Table строка с TableID = 1 и в TableItem есть несколько строк с TableID = 1. Необходимо поменять TableID на 2. Я предложил такой вариант решения. Alter table TableItem add foreign key (TableID) REFERENCES Table (TableID) on update cascade 2 вопрос Что делает этот код, какие плюсы и минусы и как его улучшить? static int Func( int a, int b, int c ) { if ( 1 < c ) return Func( b, b + a, c - 1 ); else return a; } 3 вопрос Что делает этот код, какие плюсы и минусы и как его улучшить(причем тут есть несколько улучшений как мне сказали хотя это просто сортировка пузырьком)? int[] Sort( int[] arr ) { for( int i = 0 ; i < arr.Length ; i ++ ) for ( int j = 0 ; j < arr.Length - 1 ; j ++ ) if ( arr[ j ] > arr[ j + 1 ] ) { int t = arr[ j ]; arr[ j ] = arr[ j + 1 ]; arr[ j + 1 ] = t; } return arr; } 4 вопрос Найти все возможные проблемы в коде. Необходимо составить пары "Проблема" - "Решение": [WebMethod] public Order LoadOrderInfo( string orderCode ) { try { Debug.Assert( null != orderCode && orderCode != "" ); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); lock ( cache ) { if ( cache.ContainsKey( orderCode ) ) { stopWatch.Stop(); logger.Log( "INFO", "Elapsed - {0}", stopWatch.Elapsed ); return cache[ orderCode ]; } } string queryTemplate = "SELECT OrderID, CustomerID, TotalMoney" + " FROM dbo.Orders where OrderCode='{0}'"; string query = string.Format( queryTemplate, orderCode ); SqlConnection connection = new SqlConnection( this.connectionString ); SqlCommand command = new SqlCommand( query, connection ); connection.Open(); SqlDataReader reader = command.ExecuteReader(); if ( reader.Read() ) { Order order = new Order( ( string ) reader[ 0 ], ( string ) reader[ 1 ], ( int ) reader[ 2 ] ); lock ( cache ) { if ( !cache.ContainsKey( orderCode ) ) cache[ orderCode ] = order; } stopWatch.Stop(); logger.Log( "INFO", "Elapsed - {0}", stopWatch.Elapsed ); return order; } stopWatch.Stop(); logger.Log( "INFO", "Elapsed - {0}", stopWatch.Elapsed ); return null; } catch ( SqlException ex ) { logger.Log( "ERROR", ex.Message ); throw new ApplicationException( "Error" ); } } public IDictionary<string, Order> cache; |
|||
|
||||
| jonie |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
вас просили Update сделать поди, притом простейший.
это плохая реализация пузырька, самая плохая которую можно сделать. На остальные - где ваши ответы? Мы-то знаем много чего, но зачем это расписывать - не на собеседовании ж мы. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
| ptybn8407 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 15.12.2011 Репутация: нет Всего: нет |
По 1-му. Там было указано: "Пусть есть строка с TableID = 1 и несколько TableItem с TableID = 1. Нужно изменить TableItem на 2". Я подумал, что внешний ключ с апдейтом лучшее решение. По 4-му я указал проблему с блокировками. По 3-му вопросу - я сломал голову, пытаясь получить формулу. Я попросил подсказать с вопросами, а мне в ответ "Мы-то знаем много чего, но зачем это расписывать - не на собеседовании ж мы". Ну что, спасибо. |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
Вас не просили нигде получать фомулу. Вас просили пояснить что делает код. а архитектурные проблемы не видите? А sql injection не? А отсуствие Dispose() вызовов (я уж молчу про вообще закрытие коннешена)? А обработки нормальной ошибок? А то что это впринципе устаревшая методика разработки сервисов Вы тоже не видите? Просто быть может вам стоит подучить C# ?) Это сообщение отредактировал(а) jonie - 13.1.2014, 15:11 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| ptybn8407 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 15.12.2011 Репутация: нет Всего: нет |
Да, просили указать что делает код. Но еще в задании было "Что делает этот код, какие плюсы и минусы и как его улучшить". Что можно улучшить в такой примитивной рекурсии? А подучить C# - да, стоит. Учится вообще всегда полезно, как я считаю)) |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
ну и указали бы что считает что-то вроде (пишу тут пределы лень проверять): \sum_{0}^{c-1} {x_{i-1} + x_{i-2}}\\ x_{0}=a, x_{1}=b, Или говоря языком - сумма каждого следующего значения равна сумме двух предыдущих. ну и соответвественно это считать можно и не рекурсией (вспоминаем школу)... Это сообщение отредактировал(а) jonie - 13.1.2014, 18:58 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |