@saltnburnem
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
🦋
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
A/B testing, otherwise known as split testing, is the process of testing two different versions of a web page or product feature against the original, existing version.
- Talia Nassi
@saltnburnem
#DeveloperCommunity | #vdams26
Username
Password
Login
provider
Create Account
@saltnburnem
#DeveloperCommunity | #vdams26
Username
Password
Login
provider
Create Account
Username
Password
Login
provider
Create
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
❗️ Baseline before experiment! ❗️
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
Username
Password
Login
provider
Create Account
Username
Password
Login
provider
Create
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
Username
Password
Login
provider
Create Account
Username
Password
Login
provider
Create
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
// get treatment
let treatment = client.getTreatment('css_demo');
// get features to flip based upon CSS classes
const featureA = document.querySelectorAll('.a');
const featureB = document.querySelectorAll('.b');
if (treatment === 'on') {
featureB.forEach(element => {
element.classList.add('hide')
})
} else if (treatment === 'off') {
featureA.forEach(element => {
element.classList.add('hide')
})
} else {
console.error('Error connecting to Split')
// default rule here
featureA.forEach(element => {
element.classList.add('hide')
})
}
}); @saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
<dependency>
<groupId>io.harness</groupId>
<artifactId>ff-java-server-sdk</artifactId>
<version>1.3.1</version> </dependency>implementation 'io.harness:ff-java-server-sdk:1.3.1'import io.harness.cf.client.api.*;
import io.harness.cf.client.dto.Target;
// 1. Your SDK Key from the Harness Dashboard
String apiKey = "YOUR_SDK_KEY";
// 2. Initialize the client
CfClient cfClient = new CfClient(apiKey);Target target = Target.builder()
.name("User_1")
.identifier("unique_user_id_123") // Unique ID for this user
.attribute("email", "user@example.com")
.build();// Check a boolean flag
boolean isEnabled = cfClient.boolVariation("my_feature_flag", target, false);
if (isEnabled) {
// Run the new feature code
} else {
// Run the old code
}@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
#DeveloperCommunity | #vdams26
@saltnburnem
Resources
https://bit.ly/css-feature-flags
#DeveloperCommunity | #vdams26