Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Hed-kun

Программирование, т. 6

Рекомендованные сообщения

мы хотим, чтобы интегрировался в другие системы только модуль DataContracts, а Common никому виден и не был вообще.

Если будет меняться DataContracts, то офк придется менять всё, но нам надо возможность менять произвольным образом Common, не трогая DataContracts. И чтобы никто кроме Common, о существовании DataContracts вообще не знал, кроме тех, кто будет собственно за взаимодействие отвечать.

Если я правильно понял, можно сделать интерфейсы же просто? Ну типа сначала

interface IClass1 {
 int getSmth();
}

CommonsClass1 implements IClass1 {
 int getSmth() {
return 1;
 }
}

Потом решили поменять

CommonsClass1 implements IClass1 {
 int getSmthElse() {
return 2;
 }
 int getSmth() {
return getSmthElse();
 }
}

А юзерам отдать Factory (ну или через DI инжектить):

ClassFactory {
 IClass1 getClass1() {
return new CommonsClass1();
 }
}

Поделиться сообщением


Ссылка на сообщение

Но в таком случае выходит, что юзерам придется и отдать библиотеку с Common классами, иначе они ничего никогда не создадут и не отправят нам. :fffuuu:

Если же они будут свою реализацию делать, то хер они ее нам отправят, тк у нас ведь нечем десериализовать.

А управлять сериализацией через интерфейсы нельзя, всё равно ведь сериализовываться будет реализатор, а не интерфейс


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

Ну отдавайте им Common, почему нет? Если вы что-то поменяли вы отдаете им новую версию коммон классов, они просто заменяют jar/dll, или что там у вас, и все, интерфейс то вы по прежнему соблюдаете.

Поделиться сообщением


Ссылка на сообщение

отдавать и то и то, ведь действительно, интерфейс можно не менять

чето гениусом попахивает

5 звезд тебе, 1 мне


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

потому что классы в модуле Common принадлежат нашему серверу, и мы не можем не менять там если нужно.

Поэтому и надо некий отдельный модуль (DataContracts) со всем тем же, но где не будет меняться по каждому чиху.

 

Но как заставить всё работать красиво?

Ну так сделайте, в чем проблема? Красиво - это как?

Ты делаешь модуль с базовыми классами. Ты делаешь модуль поверху который будет меняться часто. И делаешь по модулю для клиентов и для сервера, которые основываются на предыдущем.

Поделиться сообщением


Ссылка на сообщение
(изменено)

Есть знающие ВБА?

В общем, есть ячейка в которую вписывается имя и номер. Это имя заносится на другой лист в определенную ячейку. И нужно чтобы последующее Имя и номер добавлялись на строчку ниже. Написал такой код(в силу своих возможностей)

 

 

Sub add()

Dim a As String, b As String, c, d

a = Sheets("Add").Range("D5")

b = Sheets("Add").Range("D6")

 

For c = d To d

d = c + 1

Sheets("1st").Cells(d + 1, 1) = a

Sheets("1st").Cells(d + 1, 2) = b

Next c

 

 

End Sub

 

Но дело в том, что при каждом нажатии кнопки(добавления), он записывает в туже самую ячейку, т.к. каждый раз "d = 1". Как сделать чтобы "d" запоминала значение. Я офк думал просто создать лист куда записывалось бы значение "d" и бралось от туда, но мб есть и другой способ :hmm:


Изменено пользователем RDT3K

2431.png.289b73eb1e1d8ac3899623c8c8e991f1.png

Поделиться сообщением


Ссылка на сообщение
(изменено)

отдавать и то и то, ведь действительно, интерфейс можно не менять

чето гениусом попахивает

5 звезд тебе, 1 мне

я чет до сих пор не понимал в чем проблема

а теперь не понял в чем решение

 

 

почему вообще коммон не может меняться в побочном модуле (новая версия накатывается через подключаемые либы новой версии) ?

енивей для этого как раз полифорфизм и нужен (в том числе интерфейсный, как предложили выше)

но собственно говоря почему без интерфейса нельзя? имя класса и метода и типы (сигнатура), енивей не должны меняться (тк это вещи которые на этапе придумывания архитектуры уже закрепляются железно, насколько знаю)

подсовывание различных реализаций под общую абстракцию называется шаблоном Inversion of Control

 

тоесть ты должен абстракции закрепить в архитектуре сразу, на этапе придумывания архитектуры. и абстракции хардкодятся (по интерфейсам или базовым/абстрактным классам.

а чтобы подсовывать разные реализации конфигурационно (декларативно в хмл файле настроечном, например) используется IoC шаблон

при этом, вроде можно конфигурировать без ребилда/редеплоя/ребута (сервер не надо оффать если у вас новая версия джарника вышла)


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Плюсую.


Не проигрываю доту с 2013го - dotabuff

Поделиться сообщением


Ссылка на сообщение

там данные, а не методы, в этом проблема

надо данные гонять, интерфейс методов общения меняться будет раз в 1000 лет

 

А вот структура этих данных может меняться. Мы можем у себя внутри добавлять необходимые нам служебные данные

Типы могут быть внутри специализированными, а внешним системам это не нужно, им например нужна просто строка там.


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

чето я нихуя не понимаю

проблема то в чем

 

если у вас типа "своего протокола общения клиент-сервер" то как бы в любом случае либа на клиент должна как-то поставляться

 

а если ты хочешь облегчить либу на клиент - то делаешь либу лишь из части классов. чтобы автоматом делалась полная либа на сервер и отдельно ее частичка для клиента - юзаешь automation build tool

для джавы - Maven / Gradle (не знаю актуален ли последний сейчас)


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

там данные, а не методы, в этом проблема

надо данные гонять, интерфейс методов общения меняться будет раз в 1000 лет

 

А вот структура этих данных может меняться. Мы можем у себя внутри добавлять необходимые нам служебные данные

Типы могут быть внутри специализированными, а внешним системам это не нужно, им например нужна просто строка там.

пронаследуйте с динамической линковкой от разных классов, 1 для клиента, другой для сервера. для клиента будет нуль, для сервера - данные.

типа DataHolder : IContextData. IContextData содержит стуктуру которая нуль у клиентов, а на сервере нет.

Поделиться сообщением


Ссылка на сообщение
(изменено)

а язык то какой кстати. и какого плана система


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Есть знающие ВБА?

В общем, есть ячейка в которую вписывается имя и номер. Это имя заносится на другой лист в определенную ячейку. И нужно чтобы последующее Имя и номер добавлялись на строчку ниже. Написал такой код(в силу своих возможностей)

 

 

Sub add()

Dim a As String, b As String, c, d

a = Sheets("Add").Range("D5")

b = Sheets("Add").Range("D6")

 

For c = d To d

d = c + 1

Sheets("1st").Cells(d + 1, 1) = a

Sheets("1st").Cells(d + 1, 2) = b

Next c

 

 

End Sub

 

Но дело в том, что при каждом нажатии кнопки(добавления), он записывает в туже самую ячейку, т.к. каждый раз "d = 1". Как сделать чтобы "d" запоминала значение. Я офк думал просто создать лист куда записывалось бы значение "d" и бралось от туда, но мб есть и другой способ :hmm:

проверяй последнюю использованную ячейку на листе,на который ты дублируешь данные, и записывай в следующую ячейку.

 

Sub LastRowInOneColumn()

'Find the last used row in a Column: column A in this example

Dim LastRow As Long

With ActiveSheet

LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

End With

MsgBox LastRow

End Sub

 

Sub LastColumnInOneRow()

'Find the last used column in a Row: row 1 in this example

Dim LastCol As Integer

With ActiveSheet

LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column

End With

MsgBox LastCol

End Sub


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

 

Есть знающие ВБА?

В общем, есть ячейка в которую вписывается имя и номер. Это имя заносится на другой лист в определенную ячейку. И нужно чтобы последующее Имя и номер добавлялись на строчку ниже. Написал такой код(в силу своих возможностей)

 

 

Sub add()

Dim a As String, b As String, c, d

a = Sheets("Add").Range("D5")

b = Sheets("Add").Range("D6")

 

For c = d To d

d = c + 1

Sheets("1st").Cells(d + 1, 1) = a

Sheets("1st").Cells(d + 1, 2) = b

Next c

 

 

End Sub

 

Но дело в том, что при каждом нажатии кнопки(добавления), он записывает в туже самую ячейку, т.к. каждый раз "d = 1". Как сделать чтобы "d" запоминала значение. Я офк думал просто создать лист куда записывалось бы значение "d" и бралось от туда, но мб есть и другой способ :hmm:

проверяй последнюю использованную ячейку на листе,на который ты дублируешь данные, и записывай в следующую ячейку.

 

Sub LastRowInOneColumn()

'Find the last used row in a Column: column A in this example

Dim LastRow As Long

With ActiveSheet

LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

End With

MsgBox LastRow

End Sub

 

Sub LastColumnInOneRow()

'Find the last used column in a Row: row 1 in this example

Dim LastCol As Integer

With ActiveSheet

LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column

End With

MsgBox LastCol

End Sub

 

Спс :pray:


2431.png.289b73eb1e1d8ac3899623c8c8e991f1.png

Поделиться сообщением


Ссылка на сообщение

там данные, а не методы, в этом проблема

надо данные гонять, интерфейс методов общения меняться будет раз в 1000 лет

 

А вот структура этих данных может меняться. Мы можем у себя внутри добавлять необходимые нам служебные данные

Типы могут быть внутри специализированными, а внешним системам это не нужно, им например нужна просто строка там.

пронаследуйте с динамической линковкой от разных классов, 1 для клиента, другой для сервера. для клиента будет нуль, для сервера - данные.

типа DataHolder : IContextData. IContextData содержит стуктуру которая нуль у клиентов, а на сервере нет.

если я правильно тебя понял, то это автоматом доступно из-за хмл сериализации. Она и так просто проигнорит те поля в хмле, для которых не нашлось полей класса и наоборот.

Но это не помогает при надобности изменения типа \ переименовании :fffuuu: .

а язык то какой кстати. и какого плана система

Шишарп, сервер банка, но тут это в общем не имеет значения


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)

можно ли наложить градиент на фоновую картинку? отрабатывал варики из гугла но чет они как-то хуево отработались. как варик можно тень ебошить, но мне интересно можно ли градиент

 

можно ли ебошить анимацию с градиентами? я чет даже не гуглил, но это тоже интересна

нагуглил это ( http://css.yoksel.ru/animation-for-gradients/ )


Изменено пользователем DnoInvokera

have courage and be kind

  😈🫀💋 🩸👣🤌🏿🦄 🐝 ☄️❣️ 💕 💞❤️😈

 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖

220941652_Annotation2021-03-20123345.jpg.23dcff343d6a377badf433b20f5271fd.jpg

💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 

Поделиться сообщением


Ссылка на сообщение

Анимация на картинке "проCss" просто преич

Поделиться сообщением


Ссылка на сообщение

я в общем-то закрыл для себя второй вопрос

http://www.gradient-animator.com/


have courage and be kind

  😈🫀💋 🩸👣🤌🏿🦄 🐝 ☄️❣️ 💕 💞❤️😈

 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖

220941652_Annotation2021-03-20123345.jpg.23dcff343d6a377badf433b20f5271fd.jpg

💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 

Поделиться сообщением


Ссылка на сообщение
(изменено)

Парни есть пару вопросиков по жс , вот есть заготовка : http://cssdeck.com/labs/nvfimwqa ;

И вот как в ней сделать так, чтобы когда я кликаю на определнный <i> там менялся класс где я кликнул на (.actived), а старый удалялся.(целый вечер пытаюсь и у меня не получается, хочется уже посмотреть как будет).

И еще вопросец как мне потом сделать так когда я кликаю на тотже <i> чтобы у другого класcа в самом css(или как оно делается хз) менялся nth:child , например был slide:nth-child(1) { display:block} , и чтоб стал nth:child(2) . (3 слайда лежат друг под другом и нтх-чилд их показывает)

Вот это кто объяснит как сделать или что почитать буду очень рад. заранее спасибо.

 

мой жс

 

var radiobuttons = document.querySelector(".slider-controls");

var z = radiobuttons.querySelectorAll('i');

z.onclick = function()

{

z.classList.add('actived');

}

Вот так пытался, но почему то не работает(

 

 

 

 


Изменено пользователем Tiko11

Поделиться сообщением


Ссылка на сообщение
(изменено)

Парни есть пару вопросиков по жс , вот есть заготовка : http://cssdeck.com/labs/nvfimwqa ;

И вот как в ней сделать так, чтобы когда я кликаю на определнный <i> там менялся класс где я кликнул на (.actived), а старый удалялся.(целый вечер пытаюсь и у меня не получается, хочется уже посмотреть как будет).

И еще вопросец как мне потом сделать так когда я кликаю на тотже <i> чтобы у другого класcа в самом css(или как оно делается хз) менялся nth:child , например был slide:nth-child(1) { display:block} , и чтоб стал nth:child(2) . (3 слайда лежат друг под другом и нтх-чилд их показывает)

Вот это кто объяснит как сделать или что почитать буду очень рад. заранее спасибо.

 

мой жс

 

var radiobuttons = document.querySelector(".slider-controls");

var z = radiobuttons.querySelectorAll('i');

z.onclick = function()

{

z.classList.add('actived');

}

Вот так пытался, но почему то не работает(

 

 

 

 

 

На jQuery

так

 

 

var $control = $('.slider-controls');

$control.on('click','i',function(){

$control.find('.actived').removeClass('actived');

$(this).addClass('actived');

});

 

 

 

Показывать слайды по нтх-чилд мне кажется неочень идея...


Изменено пользователем fessnik

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...